LeetCode 第 26 场双周赛(363/1971,前18.4%)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 第 26 场双周赛(363/1971,前18.4%)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 比賽結果
- 2. 題目
- 1. LeetCode 5396. 連續字符 easy
- 2. LeetCode 5397. 最簡分數 medium
- 3. LeetCode 5398. 統計二叉樹中好節點的數目 medium
- 4. LeetCode 5399. 數位成本和為目標值的最大數字 hard
1. 比賽結果
做出來了 1、2、3 題,19分鐘做出來3題(拼手速),第4題回溯超時1把,然后想到了是背包DP,沒寫出來,繼續加油!沖啊!
全國排名:363 / 1971,18.4%;全球排名:1291 / 7795,16.6%
2. 題目
1. LeetCode 5396. 連續字符 easy
題目鏈接
給你一個字符串 s ,字符串的「能量」定義為:只包含一種字符的最長非空子字符串的長度。
請你返回字符串的能量。
示例 1: 輸入:s = "leetcode" 輸出:2 解釋:子字符串 "ee" 長度為 2 ,只包含字符 'e' 。示例 2: 輸入:s = "abbcccddddeeeeedcba" 輸出:5 解釋:子字符串 "eeeee" 長度為 5 ,只包含字符 'e' 。示例 3: 輸入:s = "triplepillooooow" 輸出:5示例 4: 輸入:s = "hooraaaaaaaaaaay" 輸出:11示例 5: 輸入:s = "tourist" 輸出:1提示: 1 <= s.length <= 500 s 只包含小寫英文字母。解答:
- 跟前一個比較,相等的話,計數+1,不等,計數置1
- 記錄最大計數
2. LeetCode 5397. 最簡分數 medium
題目鏈接
給你一個整數 n ,請你返回所有 0 到 1 之間(不包括 0 和 1)滿足分母小于等于 n 的 最簡 分數 。
分數可以以 任意 順序返回。
解題:
- 求最大公約數,化簡分子分母,遍歷所有可能,插入set
下面解法,無需去重,找最大公約數為1的情況
class Solution { public:vector<string> simplifiedFractions(int n) {vector<string> ans;int i, k;for(i = 1; i < n; ++i)//分子for(k = i+1; k <= n; ++k)//分母 > 分子{if(__gcd(i,k)==1)ans.push_back(to_string(i)+"/"+to_string(k));}return ans;} };3. LeetCode 5398. 統計二叉樹中好節點的數目 medium
題目鏈接
給你一棵根為 root 的二叉樹,請你返回二叉樹中好節點的數目。
「好節點」X 定義為:從根到該節點 X 所經過的節點中,沒有任何節點的值大于 X 的值。
示例 1:
示例 2:
解答:
- 簡單的二叉樹遍歷,帶一個最大值遞歸更新
4. LeetCode 5399. 數位成本和為目標值的最大數字 hard
題目鏈接
給你一個整數數組 cost 和一個整數 target 。請你返回滿足如下規則可以得到的 最大 整數:
- 給當前結果添加一個數位(i + 1)的成本為 cost[i] (cost 數組下標從 0 開始)。
- 總成本必須恰好等于 target 。
- 添加的數位中沒有數字 0 。
由于答案可能會很大,請你以字符串形式返回。
如果按照上述要求無法得到任何整數,請你返回 “0” 。
示例 1: 輸入:cost = [4,3,2,5,6,7,2,5,5], target = 9 輸出:"7772" 解釋:添加數位 '7' 的成本為 2 ,添加數位 '2' 的成本為 3 。 所以 "7772" 的代價為 2*3+ 3*1 = 9 。 "997" 也是滿足要求的數字,但 "7772" 是較大的數字。數字 成本1 -> 42 -> 33 -> 24 -> 55 -> 66 -> 77 -> 28 -> 59 -> 5示例 2: 輸入:cost = [7,6,5,5,5,6,8,7,8], target = 12 輸出:"85" 解釋:添加數位 '8' 的成本是 7 ,添加數位 '5' 的成本是 5 。 "85" 的成本為 7 + 5 = 12 。示例 3: 輸入:cost = [2,4,6,2,4,6,4,4,4], target = 5 輸出:"0" 解釋:總成本是 target 的條件下,無法生成任何整數。示例 4: 輸入:cost = [6,10,15,40,40,40,40,40,40], target = 47 輸出:"32211"提示: cost.length == 9 1 <= cost[i] <= 5000 1 <= target <= 5000解題:
比賽回溯超時解:
總結
以上是生活随笔為你收集整理的LeetCode 第 26 场双周赛(363/1971,前18.4%)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode MySQL 1468.
- 下一篇: LeetCode 252. 会议室(排序