精華區beta Marginalman 關於我們 聯絡資訊
※ 引述 《JIWP (神楽めあ的錢包)》 之銘言: :   : 又是hard我要吐了 :   : 2444. Count Subarrays With Fixed Bounds :   : 有一個array : nums、兩個整數 : minK、maxK :   : 請找出所有的subarray符合以下條件 :   : 1.subarray的最大值==maxK :   : 2.subarray的最小值==minK 解法: https://i.imgur.com/n6abbYd.jpg 跟前幾天的有點像 重點就是要知道什麼時後要改變sliding window 的l 還有組合數量跟l的關係 然後就姆咪姆咪 反正就是 遇到太大太小的就直接移動l 不然就可以看看當前可不可以增加res數量 maxi mini的話就是有剛好的就更新 ```cpp class Solution { public: long long countSubarrays(vector<int>& nums, int minK, int maxK) { long long res = 0; int len = nums.size(); int l = 0; int r = 0; int mini = -1; int maxi = -1; for(;r < len ; r ++) { int n = nums[r]; if(n > maxK || n < minK) { l = r + 1; } if(n == maxK) { maxi = r; } if(n == minK) { mini = r; } int mina = min(mini,maxi); if(mina >= l) { res += mina - l + 1; } } return res; } }; ``` -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 134.208.57.64 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1711867786.A.F30.html
JIWP: 大師 錢 03/31 14:56
devilkool: 大師 03/31 14:57
SydLrio: 小芋圓 03/31 15:02
SecondRun: 錢錢 03/31 15:26