LeetCode 第 22 场双周赛(220/2041,前10.8%)
文章目錄
- 1. 比賽結(jié)果
- 2. 題目
- LeetCode 5348. 兩個(gè)數(shù)組間的距離值 easy
- LeetCode 5349. 安排電影院座位 medium
- LeetCode 5350. 將整數(shù)按權(quán)重排序 medium
- LeetCode 5351. 3n 塊披薩 hard
1. 比賽結(jié)果
做出來了前3題,第4題有點(diǎn)難,感覺是動(dòng)態(tài)規(guī)劃。
全國排名:220 / 2041,10.8%;全球排名:729 / 5630,12.9%
2. 題目
LeetCode 5348. 兩個(gè)數(shù)組間的距離值 easy
題目鏈接
給你兩個(gè)整數(shù)數(shù)組 arr1 , arr2 和一個(gè)整數(shù) d ,請你返回兩個(gè)數(shù)組之間的 距離值 。
「距離值」 定義為符合此描述的元素?cái)?shù)目:對于元素 arr1[i] ,不存在任何元素 arr2[j] 滿足 |arr1[i]-arr2[j]| <= d 。
示例 1: 輸入:arr1 = [4,5,8], arr2 = [10,9,1,8], d = 2 輸出:2 解釋: 對于 arr1[0]=4 我們有: |4-10|=6 > d=2 |4-9|=5 > d=2 |4-1|=3 > d=2 |4-8|=4 > d=2 對于 arr1[1]=5 我們有: |5-10|=5 > d=2 |5-9|=4 > d=2 |5-1|=4 > d=2 |5-8|=3 > d=2 對于 arr1[2]=8 我們有: |8-10|=2 <= d=2 |8-9|=1 <= d=2 |8-1|=7 > d=2 |8-8|=0 <= d=2示例 2: 輸入:arr1 = [1,4,2,3], arr2 = [-4,-3,6,10,20,30], d = 3 輸出:2示例 3: 輸入:arr1 = [2,1,100,3], arr2 = [-5,-2,10,-3,7], d = 6 輸出:1提示: 1 <= arr1.length, arr2.length <= 500 -10^3 <= arr1[i], arr2[j] <= 10^3 0 <= d <= 100解答:
- 暴力查找即可
執(zhí)行用時(shí):8 ms
內(nèi)存消耗:8.3 MB
LeetCode 5349. 安排電影院座位 medium
題目鏈接
如上圖所示,電影院的觀影廳中有 n 行座位,行編號(hào)從 1 到 n ,且每一行內(nèi)總共有 10 個(gè)座位,列編號(hào)從 1 到 10 。
給你數(shù)組 reservedSeats ,包含所有已經(jīng)被預(yù)約了的座位。比如說,researvedSeats[i]=[3,8] ,它表示第 3 行第 8 個(gè)座位被預(yù)約了。
請你返回 最多 能安排多少個(gè) 4 人家庭 。4 人家庭要占據(jù) 同一行內(nèi)連續(xù) 的 4 個(gè)座位。隔著過道的座位(比方說 [3,3] 和 [3,4])不是連續(xù)的座位,但是如果你可以將 4 人家庭拆成過道兩邊各坐 2 人,這樣子是允許的。
示例 1:
解題:
- 超時(shí)做法,先按排,排序,然后按排,統(tǒng)計(jì)一排的情況,做出判斷,判斷n排
- 缺點(diǎn),n 非常大,會(huì)超時(shí)
- 采用 map + bitset 存儲(chǔ) 座位情況
- 遍歷 所有的 bitset ,分類討論即可
- 跳過沒有座位坐人的排,直接 +2
執(zhí)行用時(shí):180 ms
內(nèi)存消耗:42.3 MB
LeetCode 5350. 將整數(shù)按權(quán)重排序 medium
題目鏈接
我們將整數(shù) x 的 權(quán)重 定義為按照下述規(guī)則將 x 變成 1 所需要的步數(shù):
- 如果 x 是偶數(shù),那么 x = x / 2
- 如果 x 是奇數(shù),那么 x = 3 * x + 1
比方說,x=3 的權(quán)重為 7 。因?yàn)?3 需要 7 步變成 1 (3 --> 10 --> 5 --> 16 --> 8 --> 4 --> 2 --> 1)。
給你三個(gè)整數(shù) lo, hi 和 k 。你的任務(wù)是將區(qū)間 [lo, hi] 之間的整數(shù)按照它們的權(quán)重 升序排序 ,如果大于等于 2 個(gè)整數(shù)有 相同 的權(quán)重,那么按照數(shù)字自身的數(shù)值 升序排序 。
請你返回區(qū)間 [lo, hi] 之間的整數(shù)按權(quán)重排序后的第 k 個(gè)數(shù)。
注意,題目保證對于任意整數(shù) x (lo <= x <= hi) ,它變成 1 所需要的步數(shù)是一個(gè) 32 位有符號(hào)整數(shù)。
示例 1: 輸入:lo = 12, hi = 15, k = 2 輸出:13 解釋:12 的權(quán)重為 9(12 --> 6 --> 3 --> 10 --> 5 --> 16 --> 8 --> 4 --> 2 --> 1) 13 的權(quán)重為 9 14 的權(quán)重為 17 15 的權(quán)重為 17 區(qū)間內(nèi)的數(shù)按權(quán)重排序以后的結(jié)果為 [12,13,14,15] 。對于 k = 2 ,答案是第二個(gè)整數(shù)也就是 13 。 注意,12 和 13 有相同的權(quán)重,所以我們按照它們本身升序排序。14 和 15 同理。示例 2: 輸入:lo = 1, hi = 1, k = 1 輸出:1示例 3: 輸入:lo = 7, hi = 11, k = 4 輸出:7 解釋:區(qū)間內(nèi)整數(shù) [7, 8, 9, 10, 11] 對應(yīng)的權(quán)重為 [16, 3, 19, 6, 14] 。 按權(quán)重排序后得到的結(jié)果為 [8, 10, 11, 7, 9] 。 排序后數(shù)組中第 4 個(gè)數(shù)字為 7 。示例 4: 輸入:lo = 10, hi = 20, k = 5 輸出:13示例 5: 輸入:lo = 1, hi = 1000, k = 777 輸出:570提示: 1 <= lo <= hi <= 1000 1 <= k <= hi - lo + 1解題:
- lambda 表達(dá)式自定義排序即可
執(zhí)行用時(shí):236 ms
內(nèi)存消耗:8.8 MB
LeetCode 5351. 3n 塊披薩 hard
題目鏈接
給你一個(gè)披薩,它由 3n 塊不同大小的部分組成,現(xiàn)在你和你的朋友們需要按照如下規(guī)則來分披薩:
- 你挑選 任意 一塊披薩。
- Alice 將會(huì)挑選你所選擇的披薩逆時(shí)針方向的下一塊披薩。
- Bob 將會(huì)挑選你所選擇的披薩順時(shí)針方向的下一塊披薩。
- 重復(fù)上述過程直到?jīng)]有披薩剩下。
每一塊披薩的大小按順時(shí)針方向由循環(huán)數(shù)組 slices 表示。
請你返回你可以獲得的披薩大小總和的最大值。
示例 1:
示例 2:
解題:
- 參考此處
總結(jié)
以上是生活随笔為你收集整理的LeetCode 第 22 场双周赛(220/2041,前10.8%)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 剑指Offer - 面试题3. 数组中重
- 下一篇: LeetCode 667. 优美的排列