# 2107. Number of Unique Flavors After Sharing K Candies ###### tags: `Leetcode` `Medium` `Sliding Window` Link: https://leetcode.com/problems/number-of-unique-flavors-after-sharing-k-candies/description/ ## 思路 ```cnt```记录```candies```每个元素出现的频率 sliding window 把window里面的元素的cnt从```cnt```里面减下去 那么如果把window里面的candy给sister 自己的unique flavors就是```cnt.size()``` ## Code ```java= class Solution { public int shareCandies(int[] candies, int k) { Map<Integer, Integer> cnt = new HashMap<>(); for(int candy:candies){ cnt.put(candy, cnt.getOrDefault(candy, 0)+1); } int ans = 0; for(int i=0; i<candies.length; i++){ if(i>=k){ cnt.put(candies[i-k], cnt.getOrDefault(candies[i-k], 0)+1); } cnt.put(candies[i], cnt.getOrDefault(candies[i], 0)-1); if(cnt.get(candies[i])==0) cnt.remove(candies[i]); if(i>=k-1) ans = Math.max(ans, cnt.size()); } return ans; } } ```