Leetcode C 《第203場周賽》

2021-10-23 19:05:13 字數 1402 閱讀 1398

1.1問題

給你乙個整數 n 和乙個整數陣列 rounds 。有一條圓形賽道由 n 個扇區組成,扇區編號從 1 到 n 。現將在這條賽道上舉辦一場馬拉松比賽,該馬拉松全程由 m 個階段組成。其中,第 i 個階段將會從扇區 rounds[i - 1] 開始,到扇區 rounds[i] 結束。舉例來說,第 1 階段從 rounds[0] 開始,到 rounds[1] 結束。

請你以陣列形式返回經過次數最多的那幾個扇區,按扇區編號 公升序 排列。

輸入:n = 4, rounds = [1,3,1,2]

輸出:[1,2]

解釋:本場馬拉松比賽從扇區 1 開始。經過各個扇區的次序如下所示:

1 --> 2 --> 3(階段 1 結束)–> 4 --> 1(階段 2 結束)–> 2(階段 3 結束,即本場馬拉松結束)

其中,扇區 1 和 2 都經過了兩次,它們是經過次數最多的兩個扇區。扇區 3 和 4 都只經過了一次。

1.2思路

1.3**

class

solution

dp[(x-1

)%n]++;

}int maxv =0;

for(

int i =

0; i < n; i++

) vector<

int> res;

for(

int i =

0; i < n; i++

)return res;}}

;

2.1問題

有 3n 堆數目不一的硬幣,你和你的朋友們打算按以下方式分硬幣:

每一輪中,你將會選出 任意 3 堆硬幣(不一定連續)。

alice 將會取走硬幣數量最多的那一堆。

你將會取走硬幣數量第二多的那一堆。

bob 將會取走最後一堆。

重複這個過程,直到沒有更多硬幣。

給你乙個整數陣列 piles ,其中 piles[i] 是第 i 堆中硬幣的數目。

返回你可以獲得的最大硬幣數目。

示例 1:

輸入:piles = [2,4,1,2,7,8]

輸出:9

解釋:選出 (2, 7, 8) ,alice 取走 8 枚硬幣的那堆,你取走 7 枚硬幣的那堆,bob 取走最後一堆。

選出 (1, 2, 4) , alice 取走 4 枚硬幣的那堆,你取走 2 枚硬幣的那堆,bob 取走最後一堆。

你可以獲得的最大硬幣數目:7 + 2 = 9.

考慮另外一種情況,如果選出的是 (1, 2, 8) 和 (2, 4, 7) ,你就只能得到 2 + 4 = 6 枚硬幣,這不是最優解。

2.2思路

2.3**

class

solution

return res;}}

;

Leetcode C 《第202場周賽》

1.1問題 給你乙個整數陣列 arr,請你判斷陣列中是否存在連續三個元素都是奇數的情況 如果存在,請返回 true 否則,返回 false 示例 1 輸入 arr 2,6,4,1 輸出 false 解釋 不存在連續三個元素都是奇數的情況。示例 2 輸入 arr 1,2,34,3,4,5,7,23,1...

LeetCode 第 203 場周賽

1560.圓形賽道上經過次數最多的扇區 class solution else 起點大於終點的情況 1561.查詢大小為 m 的最新分組 1563.石子遊戲 v 記憶搜尋 dfs dp 1 n 就是答案 終止條件 l r,return 0 狀態轉移 遍歷 l,r 中的中間點節點,根據劃分sum i ...

LeetCode 第203場周賽題解報告

知識點 計數 排序 因為資料量較小,可以直接暴力統計經過每個扇區的次數。然後選取此時最大的扇區即可。資料量較大時,可用線段樹等區間查詢技術來優化 class solution cnt rounds 0 因為只有round 0 的起點需要計數,所以單獨統計一下。知識點 貪心 排序因為每輪選擇中,bob...