精華區beta Marginalman 關於我們 聯絡資訊
https://leetcode.com/problems/count-complete-subarrays-in-an-array/ 2799. Count Complete Subarrays in an Array 給你一個陣列nums,如果一個子陣列有nums的所有元素,則他是一個完全子陣列, 找出共有幾個完全子陣列。 思路: 毫無反應就是個滑動窗口模板,先找出不重複元素數量,然後當子陣列滿足數量的時候, 這個子陣列左邊也都滿足,l保存左邊切到哪是合法的。 Java Code: -------------------------------------------- class Solution { public int countCompleteSubarrays(int[] nums) { Map<Integer, Integer> count = new HashMap<>(); for (int num : nums) { count.put(num, count.getOrDefault(num, 0) + 1); } int res = 0; int l = 0; int r = 0; Map<Integer, Integer> curr = new HashMap<>(); while (r < nums.length) { curr.put(nums[r], curr.getOrDefault(nums[r], 0) + 1); while (curr.size() == count.size()) { curr.put(nums[l], curr.get(nums[l]) - 1); if (curr.get(nums[l]) == 0) { curr.remove(nums[l]); } l++; } r++; res += l; } return res; } } -------------------------------------------- -- https://i.imgur.com/5xKbxoh.jpeg -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.159.104.111 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1745481630.A.2BB.html