2024/10/09 灵茶题单 滑动窗口
This commit is contained in:
parent
52bc75308c
commit
37e77fea51
|
@ -0,0 +1,52 @@
|
|||
package com.cool.ling_cha_mount.sliding_windows;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Created with IntelliJ IDEA.
|
||||
*
|
||||
* @Author: Cool
|
||||
* @Date: 2024/10/09/17:24
|
||||
* @Description:
|
||||
*/
|
||||
public class Num2841 {
|
||||
|
||||
public long maxSum(List<Integer> nums, int m, int k) {
|
||||
Map<Integer,Integer> map=new HashMap<>();
|
||||
long sum=0;
|
||||
for(int i=0;i<k;i++){
|
||||
Integer integer =nums.get(i);
|
||||
if(!map.containsKey(integer)){
|
||||
map.put(integer,1);
|
||||
}else{
|
||||
map.put(integer,map.get(integer)+1);
|
||||
}
|
||||
sum+= integer;
|
||||
}
|
||||
long res=0;
|
||||
if(map.size()>=m){
|
||||
res=sum;
|
||||
}
|
||||
for(int i=k;i<nums.size();i++){
|
||||
Integer left=nums.get(i-k);
|
||||
Integer right=nums.get(i);
|
||||
map.put(left,map.get(left)-1);
|
||||
if(map.get(left).equals(0)){
|
||||
map.remove(left);
|
||||
}
|
||||
if(!map.containsKey(right)){
|
||||
map.put(right,1);
|
||||
}else{
|
||||
map.put(right,map.get(right)+1);
|
||||
}
|
||||
sum-=left;
|
||||
sum+=right;
|
||||
if(map.size()>=m){
|
||||
res=Math.max(res,sum);
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue