Q12 LeetCode904 水果成篮

1.使用HashMap记录键值对

2.定义HashMap方式

HashMap<Integer, Integer> map = new HashMap<>();

3.map.put(key,value);输入键值对

4.map.getOrDefault(value,0);获取值,如果没有默认为0;

5.map.get(key)取值

6.map.size()键值对长度

7.map.replace(key,value)替换key的value值

 

复制代码
 1 class Solution {
 2     public int totalFruit(int[] fruits) {
 3         HashMap<Integer, Integer> map = new HashMap<>();
 4         int n=fruits.length;
 5         int sum=0;
 6         int left=0;
 7         for(int right=0;right<n;right++){
 8             map.put(fruits[right],map.getOrDefault(fruits[right],0)+1);
 9             while(map.size()>2){
10                 map.replace(fruits[left],map.get(fruits[left])-1);
11                 if(map.get(fruits[left])==0){
12                    map.remove(fruits[left]); 
13                 }
14                left++;
15             }
16             sum=Math.max(sum,right-left+1);
17         }
18         return sum;
19     }
20 }
复制代码

 

posted @   清川1  阅读(4)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示