最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

復盤|第86場雙周賽

2022-10-23 20:30 作者:UCLmsc  | 我要投稿

2395. 和相等的子數(shù)組?https://leetcode.cn/problems/find-subarrays-with-equal-sum/

【滑動窗口】樸素版大小為2的滑動窗口。

【滑動窗口】用pairwise代替nums[i] + nums[i + 1]。

【滑動窗口】用pairwise代替nums[i] + nums[i + 1],用map(sum, _)代替相加。統(tǒng)計相鄰數(shù)字的和,加入哈希表去重,去重后如果不足n-1個,則子數(shù)組存在。

2396. 嚴格回文的數(shù)字?https://leetcode.cn/problems/strictly-palindromic-number/

【模擬】寫一個進制轉換函數(shù)converter將n轉換為x進制,將n轉換為2~n-2的所有進制數(shù),判斷條件。

【腦筋急轉彎】n = 4時,2進制下為100,不是回文串,n > 4時,根據(jù)帶余除法n = qb + r,取b = n - 2,q = 1, r = 2,所以n在n - 2進制下為12,不是回文串。在n的所有取值范圍內都能找到反例,故返回false。

2397. 被列覆蓋的最多行數(shù)?https://leetcode.cn/problems/maximum-rows-covered-by-columns/

【DFS】直接二進制枚舉選中的列,然后判斷是否覆蓋所有行中的 1,若是,更新答案。(二進制枚舉:只有0 1 兩種狀態(tài),用數(shù)組存浪費空間太大,用二進制存)

【二進制枚舉】由于數(shù)據(jù)范圍較小,可以枚舉所有大小為cols的列編號集合,對于每個集合,遍歷mat,統(tǒng)計所有1被覆蓋的行的個數(shù),個數(shù)最大值即為答案。代碼中,用二進制表示集合,二進制的第i位為1表示i在集合中,為0表示i不在集合中。01矩陣用[sum(i<< j) for i, j in enumerate(row)]能逆序,相當于2^0+ 2^1+ 2^2+…用mask檢驗枚舉的情況與實際情況是否匹配,用&,如果row(枚舉的) & row(mask的) == row(任意一個)說明匹配。

【Gosper's Hack】Gosper's Hack能快速枚舉cols個1的所有集合,比如n =7, cols = 4,需要枚舉0001111 ~ 1111000的所有四個1的二進制數(shù),Gosper's Hack算法原理:從右往左找到第一個01變成10,10右邊的所有11全部挪到最右邊。(lowbit為補碼 = x & -x)

2398. 預算內的最多機器人數(shù)目?https://leetcode.cn/problems/maximum-number-of-robots-within-budget/

【單調隊列 + 雙指針】求滑動窗口內的最大值,可以用單調隊列來求解,一般可以二分枚舉窗口k的大小,找到一個最大的k,實際本題不需要二分枚舉,只需要把固定窗口改為雙指針即可。代碼中,維護一個單調遞減的隊列,堆頂?shù)脑爻潆姇r間最長,tot記錄window里的runningCosts之和,枚舉區(qū)間右端點right,計算區(qū)間左端點left最小值,如果左端點left不滿足要求就右移。



復盤|第86場雙周賽的評論 (共 條)

分享到微博請遵守國家法律
牡丹江市| 奉新县| 宣威市| 永春县| 景谷| 孝昌县| 衡阳市| 莒南县| 高邮市| 汝阳县| 阿克苏市| 日喀则市| 宁武县| 共和县| 封丘县| 安阳市| 济宁市| 汉阴县| 洛南县| 安达市| 县级市| 旅游| 吉首市| 大理市| 准格尔旗| 和顺县| 太谷县| 张掖市| 新乐市| 尼玛县| 巴青县| 左云县| 连南| 仁怀市| 富源县| 宁远县| 和政县| 桂阳县| 平顶山市| 冀州市| 改则县|