LeetCode 第 207 场周赛(245/4115,前5.95%)
文章目錄
- 1. 比賽結果
- 2. 題目
- 1. LeetCode 5519. 重新排列單詞間的空格 easy
- 2. LeetCode 5520. 拆分字符串使唯一子字符串的數目最大 medium
- 3. LeetCode 5521. 矩陣的最大非負積 medium
- 4. LeetCode 5522. 連通兩組點的最小成本 hard
1. 比賽結果
做出來3題,第四題試了DP和貪心都沒過,狀態轉移可能沒找對。繼續加油!
全國排名: 245 / 4115,5.95%;全球排名: 774 / 12923,5.99%
2. 題目
1. LeetCode 5519. 重新排列單詞間的空格 easy
題目鏈接
給你一個字符串 text ,該字符串由若干被空格包圍的單詞組成。
每個單詞由一個或者多個小寫英文字母組成,并且兩個單詞之間至少存在一個空格。
題目測試用例保證 text 至少包含一個單詞 。
請你重新排列空格,使每對相鄰單詞之間的空格數目都 相等 ,并盡可能 最大化 該數目。
如果不能重新平均分配所有空格,請 將多余的空格放置在字符串末尾 ,這也意味著返回的字符串應當與原 text 字符串的長度相等。
返回 重新排列空格后的字符串 。
示例 1: 輸入:text = " this is a sentence " 輸出:"this is a sentence" 解釋:總共有 9 個空格和 4 個單詞。 可以將 9 個空格平均分配到相鄰單詞之間, 相鄰單詞間空格數為:9 / (4-1) = 3 個。示例 2: 輸入:text = " practice makes perfect" 輸出:"practice makes perfect " 解釋:總共有 7 個空格和 3 個單詞。 7 / (3-1) = 3 個空格加上 1 個多余的空格。 多余的空格需要放在字符串的末尾。示例 3: 輸入:text = "hello world" 輸出:"hello world"示例 4: 輸入:text = " walks udp package into bar a" 輸出:"walks udp package into bar a "示例 5: 輸入:text = "a" 輸出:"a"提示: 1 <= text.length <= 100 text 由小寫英文字母和 ' ' 組成 text 中至少包含一個單詞解題:
- 按題意模擬
4 ms 6.1 MB
2. LeetCode 5520. 拆分字符串使唯一子字符串的數目最大 medium
題目鏈接
給你一個字符串 s ,請你拆分該字符串,并返回拆分后唯一子字符串的最大數目。
字符串 s 拆分后可以得到若干 非空子字符串 ,這些子字符串連接后應當能夠還原為原字符串。
但是拆分出來的每個子字符串都必須是 唯一的 。
注意:子字符串 是字符串中的一個連續字符序列。
示例 1: 輸入:s = "ababccc" 輸出:5 解釋:一種最大拆分方法為 ['a', 'b', 'ab', 'c', 'cc'] 。 像 ['a', 'b', 'a', 'b', 'c', 'cc'] 這樣拆分不滿足題目要求, 因為其中的 'a' 和 'b' 都出現了不止一次。示例 2: 輸入:s = "aba" 輸出:2 解釋:一種最大拆分方法為 ['a', 'ba'] 。示例 3: 輸入:s = "aa" 輸出:1 解釋:無法進一步拆分字符串。提示: 1 <= s.length <= 16 s 僅包含小寫英文字母解題:
- 看數據量很小,暴力回溯做的
556 ms 42.1 MB
- 加入剪枝,加速
44 ms 8.7 MB
3. LeetCode 5521. 矩陣的最大非負積 medium
題目鏈接
給你一個大小為 rows x cols 的矩陣 grid 。
最初,你位于左上角 (0, 0) ,每一步,你可以在矩陣中 向右 或 向下 移動。
在從左上角 (0, 0) 開始到右下角 (rows - 1, cols - 1) 結束的所有路徑中,找出具有 最大非負積 的路徑。
路徑的積是沿路徑訪問的單元格中所有整數的乘積。
返回 最大非負積 對 10^9 + 7 取余 的結果。
如果最大積為負數,則返回 -1 。
注意,取余是在得到最大積之后執行的。
示例 1: 輸入:grid = [[-1,-2,-3],[-2,-3,-3],[-3,-3,-2]] 輸出:-1 解釋:從 (0, 0) 到 (2, 2) 的路徑中無法得到非負積,所以返回 -1示例 2: 輸入:grid = [[1,-2,1],[1,-2,1],[3,-4,1]] 輸出:8 解釋:最大非負積對應的路徑已經用粗體標出 (1 * 1 * -2 * -4 * 1 = 8)示例 3: 輸入:grid = [[1, 3],[0,-4]] 輸出:0 解釋:最大非負積對應的路徑已經用粗體標出 (1 * 0 * -4 = 0)示例 4: 輸入:grid = [[ 1, 4,4,0],[-2, 0,0,1],[ 1,-1,1,1]] 輸出:2 解釋:最大非負積對應的路徑已經用粗體標出 (1 * -2 * 1 * -1 * 1 * 1 = 2)提示: 1 <= rows, cols <= 15 -4 <= grid[i][j] <= 4解題:
- 動態規劃 dp[i][j] 存儲一個 pair,first 是最小值,second 是最大值
8 ms 10.3 MB
4. LeetCode 5522. 連通兩組點的最小成本 hard
題目鏈接
給你兩組點,其中第一組中有 size1 個點,第二組中有 size2 個點,且 size1 >= size2 。
任意兩點間的連接成本 cost 由大小為 size1 x size2 矩陣給出,其中 cost[i][j] 是第一組中的點 i 和第二組中的點 j 的連接成本。
如果兩個組中的每個點都與另一組中的一個或多個點連接,則稱這兩組點是連通的。
換言之,第一組中的每個點必須至少與第二組中的一個點連接,
且第二組中的每個點必須至少與第一組中的一個點連接。
返回連通兩組點所需的最小成本。
示例 1:
示例 2:
解題:
待學習。狀態壓縮DP
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 第 207 场周赛(245/4115,前5.95%)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 321. 拼接最大数(
- 下一篇: LeetCode 497. 非重叠矩形中