Q12 LeetCode904 水果成籃

清川1發表於2024-06-06

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 }

相關文章