Re: [閒聊] 每日leetcode

看板Marginalman作者 (是oin的說)時間1年前 (2024/11/10 14:07), 編輯推噓4(404)
留言8則, 5人參與, 1年前最新討論串1108/1548 (看更多)
題目 找一段最短的陣列裡面 | 全部的值至少k 思路 其實想蠻久的 最後是紀錄裡面的每個位子的bit數量 然後sliding window 找到每個至少k值的長度 ```cpp class Solution { public: vector<int> nums; int n ; int k ; int val(vector<long long>& now) { int res = 0; for(int i = 0 ; i < 32 ; i ++) { if(now[i])res += pow(2,i); } return res; } int minimumSubarrayLength(vector<int>& nums2, int k2) { nums = nums2; k = k2; n = nums.size(); int res = INT_MAX; vector<long long> paper(32,0); int i = 0; int l = 0; for(i = 0 ; i < n ; i ++ ) { for(int t = 0 ; t < 31 ; t ++) { if(nums[i] & (int)pow(2,t))paper[t] ++; } vector<long long> paper2 = paper; for(int t = 0 ; t < 31 ; t ++) { if(nums[l] & (int)pow(2,t))paper2[t] --; } while(val(paper2) >= k && l<i) { l++; paper = paper2; for(int t = 0 ; t < 31 ; t ++) { if(nums[l] & (int)pow(2,t))paper2[t] --; } } if(val(paper) >= k)res = min ( res , i-l+1); } if(res == INT_MAX)return -1; return res; } }; ``` -- 邊版的小母雞 — fuckchicken https://i.imgur.com/wglAuYR.jpg
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.216.167.248 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1731218853.A.5CD.html

11/10 14:10, 1年前 , 1F
純軟還是可能拿到38k待遇,別卷了
11/10 14:10, 1F

11/10 14:12, 1年前 , 2F
大師
11/10 14:12, 2F

11/10 14:12, 1年前 , 3F
剩我寫出一坨答辯不敢發了
11/10 14:12, 3F

11/10 14:12, 1年前 , 4F

11/10 14:17, 1年前 , 5F
甚麼時候送我禮物
11/10 14:17, 5F

11/10 14:18, 1年前 , 6F
養我
11/10 14:18, 6F

11/10 14:21, 1年前 , 7F
沒關係 38k還是比文組高
11/10 14:21, 7F

11/10 14:22, 1年前 , 8F
文組太苦了
11/10 14:22, 8F
文章代碼(AID): #1dC4sbND (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1dC4sbND (Marginalman)