LeetCode 第 17 场双周赛(469/897,前52.3%)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 第 17 场双周赛(469/897,前52.3%)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 比賽結果
- 2. 題目
- LeetCode 5143. 解壓縮編碼列表 easy
- LeetCode 5144. 矩陣區域和 medium
- LeetCode 5145. 祖父節點值為偶數的節點和 medium
- LeetCode 5146. 不同的循環子字符串 hard
1. 比賽結果
做出來了1, 3兩題,第2題在比賽結束后10分鐘提交通過。
2. 題目
LeetCode 5143. 解壓縮編碼列表 easy
題目鏈接
給你一個以行程長度編碼壓縮的整數列表 nums 。
考慮每相鄰兩個元素 [a, b] = [nums[2*i], nums[2*i+1]] (其中 i >= 0 ),每一對都表示解壓后有 a 個值為 b 的元素。
請你返回解壓后的列表。
示例: 輸入:nums = [1,2,3,4] 輸出:[2,4,4,4]提示: 2 <= nums.length <= 100 nums.length % 2 == 0 1 <= nums[i] <= 100解答:語文題,讀懂題目即可,一開始沒讀懂,出錯一次。
class Solution { public:vector<int> decompressRLElist(vector<int>& nums) {vector<int> ans;int count, val;for(int i = 0; i < nums.size()/2; ++i){count = nums[2*i];val = nums[2*i+1];while(count--)ans.push_back(val);}return ans;} };LeetCode 5144. 矩陣區域和 medium
題目鏈接
給你一個 m * n 的矩陣 mat 和一個整數 K ,請你返回一個矩陣 answer ,其中每個 answer[i][j] 是所有滿足下述條件的元素 mat[r][c] 的和:
解題:
- 按行動態規劃,ans[i][j] = ans[i][j-1]+vs(mat,j+K,i-K,i+K)-vs(mat,j-K-1,i-K,i+K)
- 后面的和 == 左邊的和 + 新增加的列 - 出去的列
LeetCode 5145. 祖父節點值為偶數的節點和 medium
題目鏈接
給你一棵二叉樹,請你返回滿足以下條件的所有節點的值之和:
- 該節點的祖父節點的值為偶數。(一個節點的祖父節點是指該節點的父節點的父節點。)
如果不存在祖父節點值為偶數的節點,那么返回 0 。
示例:
解題:常規操作,遞歸
class Solution { public:int sumEvenGrandparent(TreeNode* root) {int ans = 0;dfs(ans, root);return ans;}void dfs(int& ans, TreeNode* root){if(!root) return;if(root->val%2 == 0){if(root->left){if(root->left->left)ans += root->left->left->val;if(root->left->right)ans += root->left->right->val;}if(root->right){if(root->right->left)ans += root->right->left->val;if(root->right->right)ans += root->right->right->val;}}dfs(ans, root->left);dfs(ans, root->right);} };LeetCode 5146. 不同的循環子字符串 hard
題目鏈接
給你一個字符串 text ,請你返回滿足下述條件的 不同 非空子字符串的數目:這些子字符串可以寫成某個字符串與其自身的串聯。
示例 1: 輸入:text = "abcabcabc" 輸出:3 解釋:3 個子字符串分別為 "abcabc" , "bcabca" 和 "cabcab" 。示例 2: 輸入:text = "leetcodeleetcode" 輸出:2 解釋:2 個子字符串為 "ee" 和 "leetcodeleetcode" 。提示: 1 <= text.length <= 2000 text 只包含小寫英文字母。解題:
想著暴力能夠破解,想多了,hard題目,不能暴力解。
超時代碼:
- 用c++17 的 string_view 可以避免復制,可以節省內存
總結
以上是生活随笔為你收集整理的LeetCode 第 17 场双周赛(469/897,前52.3%)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1054. 距离相等的
- 下一篇: 剑指Offer - 面试题32 - II