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] 的和:

i - K <= r <= i + K, j - K <= c <= j + K  且 (r, c) 在矩阵内。
示例 1:
输入:mat = [[1,2,3],[4,5,6],[7,8,9]], K = 1
输出:[[12,21,16],[27,45,33],[24,39,28]]
示例 2:
输入:mat = [[1,2,3],[4,5,6],[7,8,9]], K = 2
输出:[[45,45,45],[45,45,45],[45,45,45]]提示:
m == mat.length
n == mat[i].length
1 <= m, n, K <= 100
1 <= mat[i][j] <= 100

解题:

  • 按行动态规划,ans[i][j] = ans[i][j-1]+vs(mat,j+K,i-K,i+K)-vs(mat,j-K-1,i-K,i+K)
  • 后面的和 == 左边的和 + 新增加的列 - 出去的列
class Solution {int m, n, sum, x, y;
public:vector<vector<int>> matrixBlockSum(vector<vector<int>>& mat, int K) {m = mat.size();n = mat[0].size();vector<vector<int>> ans(m, vector<int>(n));int i, j;for(i = 0; i < m; ++i){ans[i][0] = sqsum(mat,i,0,K);for(j = 1; j < n; j++)ans[i][j] = ans[i][j-1]+vs(mat,j+K,i-K,i+K)-vs(mat,j-K-1,i-K,i+K);}return ans;}int vs(vector<vector<int>>& mat, int j, int i0, int i1){for(sum=0 ; i0 <= i1; i0++){if(inside(i0,j))sum += mat[i0][j];}return sum;}int sqsum(vector<vector<int>>& mat, int i, int j, int K){sum = 0;for(x=i-K; x <= i+K; ++x)for(y = j-K; y<= j+K; ++y){if(inside(x,y))sum += mat[x][y];}return sum;}bool inside(int &x, int &y){return (x>=0 && x<m && y>=0 && y<n);}
};

LeetCode 5145. 祖父节点值为偶数的节点和 medium

题目链接

给你一棵二叉树,请你返回满足以下条件的所有节点的值之和:

  • 该节点的祖父节点的值为偶数。(一个节点的祖父节点是指该节点的父节点的父节点。)

如果不存在祖父节点值为偶数的节点,那么返回 0 。

示例:
在这里插入图片描述

输入:root = [6,7,8,2,7,1,3,9,null,1,4,null,null,null,5]
输出:18
解释:图中红色节点的祖父节点的值为偶数,蓝色节点为这些红色节点的祖父节点。
提示:
树中节点的数目在 110^4 之间。
每个节点的值在 1100 之间。

解题:常规操作,递归

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题目,不能暴力解。
超时代码:

class Solution {
public:int distinctEchoSubstrings(string text) {int i, len, n = text.size();string s, doubS;set<string> set;for(len = 1; len <= n/2+1; len++){for(i = 0; i <= n-len; ++i){s = text.substr(i, len);doubS = s+s;if(text.find(doubS) != text.npos)set.insert(doubS);}}return set.size();}
};

在这里插入图片描述

class Solution {
public:int distinctEchoSubstrings(string text) {int i, len, n = text.size(), count = 0;string s, doubS;for(len = 1; len <= n/2+1; len++){set<string> set;for(i = 0; i <= n-2*len; ++i){s = text.substr(i, len);doubS = text.substr(i,2*len);if(s+s == doubS)set.insert(doubS);}count += set.size();}return count;}
};

在这里插入图片描述

  • 用c++17 的 string_view 可以避免复制,可以节省内存
class Solution {
public:int distinctEchoSubstrings(string text) {int i, len, n = text.size(), count = 0;string_view t(text);for(len = 1; len <= n/2+1; len++){set<string_view> set;for(i = 0; i <= n-2*len; ++i){if(t.substr(i,len) == t.substr(i+len,len))set.insert(t.substr(i,len));}count += set.size();}return count;}
};

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/477499.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Cloud构建微服务架构:分布式配置中心【Dalston版】

Spring Cloud Config是Spring Cloud团队创建的一个全新项目&#xff0c;用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持&#xff0c;它分为服务端与客户端两个部分。其中服务端也称为分布式配置中心&#xff0c;它是一个独立的微服务应用&#xff0c;用来连…

图谱实战 | 知识图谱在美团搜索酒旅场景认知中的应用

分享嘉宾&#xff1a;陈骐 美团 高级算法专家编辑整理&#xff1a;毛佳豪 中国平安浙江分公司(实习)出品平台&#xff1a;DataFunTalk导读&#xff1a;知识图谱凭借能够以图模型描述知识和世界万物关联关系的特性&#xff0c;在各行业领域大放异彩。与此同时&#xff0c;知识图…

AI技术在空气净化机器人中的高能应用

本文转载自公众号“夕小瑶的卖萌屋”&#xff0c;专业带逛互联网算法圈的神操作 -----》我是传送门 关注后&#xff0c;回复以下口令&#xff1a; 回复【789】 &#xff1a;领取深度学习全栈手册&#xff08;含NLP、CV海量综述、必刷论文解读&#xff09; 回复【入群】&#xf…

Spring Cloud构建微服务架构:服务消费(Feign)【Dalston版】

通过前两篇《Spring Cloud构建微服务架构&#xff1a;服务消费&#xff08;基础&#xff09;》和《Spring Cloud构建微服务架构&#xff1a;服务消费&#xff08;Ribbon&#xff09;》&#xff0c;我们已经学会了在Spring Cloud中基本的服务调用方式。本文我们将继续介绍Spring…

LeetCode 1317. 将整数转换为两个无零整数的和

1. 题目 「无零整数」是十进制表示中 不含任何 0 的正整数。 给你一个整数 n&#xff0c;请你返回一个 由两个整数组成的列表 [A, B]&#xff0c;满足&#xff1a; A 和 B 都是无零整数A B n 题目数据保证至少有一个有效的解决方案。 如果存在多个有效解决方案&#xff…

预训练模型对实体的表示能力差?一个简单有效的解法来了(开源)

本文转载自公众号“夕小瑶的卖萌屋”&#xff0c;专业带逛互联网算法圈的神操作 -----》我是传送门 关注后&#xff0c;回复以下口令&#xff1a; 回复【789】 &#xff1a;领取深度学习全栈手册&#xff08;含NLP、CV海量综述、必刷论文解读&#xff09; 回复【入群】&#xf…

图谱实战 | 深度应用驱动的医学知识图谱构建

分享嘉宾&#xff1a;徐美兰 浙江数字医疗卫生技术研究院 数字医学知识中心主任编辑整理&#xff1a;李杰 京东出品平台&#xff1a;DataFunTalk导读&#xff1a;数研院这些年在知识图谱建设上取得了丰硕成果&#xff0c;今天我们将图谱构建过程中的经验、心得分享给大家&#…

朴素贝叶斯法(Naive Bayes,NB)

文章目录1. 朴素贝叶斯法的学习与分类1.1 基本方法2. 参数估计2.1 极大似然估计2.2 学习与分类算法2.2.1 例题2.2.2 例题代码2.3 贝叶斯估计&#xff08;平滑&#xff09;2.3.1 例题2.3.2 例题代码3. 自编程实现NB4. sklearn.naive_bayes1. 朴素贝叶斯法的学习与分类 1.1 基本…

《Easy RL:强化学习教程》出版了!文末送书

作为人工智能里最受关注的领域之一&#xff0c;强化学习的热度一直居高不下&#xff0c;但它的学习难度也同样不低。在学习强化学习的过程中&#xff0c;遇到了有无数资料却难以入门的问题&#xff0c;于是发起了Datawhale强化学习项目&#xff0c;希望自学的同时帮助更多学习者…

Spring Cloud构建微服务架构:服务消费(基础)【Dalston版】

通过上一篇《Spring Cloud构建微服务架构&#xff1a;服务注册与发现》&#xff0c;我们已经成功地将服务提供者&#xff1a;eureka-client或consul-client注册到了Eureka服务注册中心或Consul服务端上了&#xff0c;同时我们也通过DiscoveryClient接口的getServices获取了当前…

论文浅尝 | Temporal Knowledge Graph Completion Using Box Embeddings

笔记整理&#xff1a;杨露露&#xff0c;天津大学硕士论文链接&#xff1a;https://www.aaai.org/AAAI22Papers/AAAI-6210.MessnerJ.pdf动机时态知识图谱补全&#xff08;TKGC&#xff09;中的主要挑战是额外学习时间戳嵌入&#xff0c;以便嵌入模型根据关系、实体和时间戳嵌入…

别再无脑wwm了,在下游任务中不一定有效

本文转载自公众号“夕小瑶的卖萌屋”&#xff0c;专业带逛互联网算法圈的神操作 -----》我是传送门 关注后&#xff0c;回复以下口令&#xff1a; 回复【789】 &#xff1a;领取深度学习全栈手册&#xff08;含NLP、CV海量综述、必刷论文解读&#xff09; 回复【入群】&#xf…

逻辑斯谛回归模型( Logistic Regression,LR) 最大熵模型(Max Entropy,ME)

文章目录1. Logistic Regression 模型1.1 logistic 分布1.2 二项逻辑斯谛回归模型1.3 模型参数估计1.4 多项逻辑斯谛回归1.5 Python代码2. Maximum Entropy 模型2.1 最大熵原理2.2 最大熵模型的定义2.3 最大熵模型的学习2.4 例题3. 模型学习的最优化算法4. 鸢尾花LR分类实践1. …

Spring Cloud构建微服务架构:服务注册与发现(Eureka、Consul)【Dalston版】

已经有非常长的时间没有更新《Spring Cloud构建微服务架构》系列文章了&#xff0c;自从开始写Spring Cloud的专题内容开始就获得了不少的阅读量和认可&#xff0c;当然也有一些批评&#xff0c;其中也不乏一些很中肯的意见和深度的问题&#xff0c;对我来说也是进一步提高的契…

虚拟专辑丨知识图谱

虚 拟 专 辑 “武大学术期刊”的“虚拟专辑” 旨在将已发表在武汉大学科技期刊中心旗下期刊的论文以时下热点领域按主题重新组合&#xff0c;集中推送&#xff0c;以方便不同专业领域的读者集中查阅、追踪最新研究成果。此次推送的“知识图谱”虚拟专辑&#xff0c;为近几年发…

prompt你到底行不行?

文 | 马杀鸡三明治 源 | 知乎 很久之前老板下任务要试试prompt这个大风&#xff0c;但是玩完后发现太菜了所以连文章都没写&#xff0c;刚好今天工作比较闲就来写写了。 先上结论&#xff0c;连续prompt为运用大模型提供了一种思路&#xff0c;其实这种思路早就见过不少了。。。…

LeetCode 1323. 6 和 9 组成的最大数字

1. 题目 给你一个仅由数字 6 和 9 组成的正整数 num。 你最多只能翻转一位数字&#xff0c;将 6 变成 9&#xff0c;或者把 9 变成 6 。 请返回你可以得到的最大数字。 示例 1&#xff1a; 输入&#xff1a;num 9669 输出&#xff1a;9969 解释&#xff1a; 改变第一位数字…

Spring Cloud实战小贴士:Zuul统一异常处理(二)

在前几天发布的《Spring Cloud实战小贴士&#xff1a;Zuul统一异常处理&#xff08;一&#xff09;》一文中&#xff0c;我们详细说明了当Zuul的过滤器中抛出异常时会发生客户端没有返回任何内容的问题以及针对这个问题的两种解决方案&#xff1a;一种是通过在各个阶段的过滤器…

论文浅尝 | Explainable Link Prediction in Knowledge Hypergraphs

笔记整理&#xff1a;陈子睿&#xff0c;天津大学硕士论文链接&#xff1a;https://dl.acm.org/doi/10.1145/3511808.3557316动机知识超图链接预测已被认为是各种知识使能下游应用的关键问题。然而&#xff0c;大多数现有方法主要以黑盒方式执行链接预测&#xff0c;它们学习实…

吴恩达入驻知乎,涨粉秒过万!知乎首答:如何系统学习机器学习

文 | 卖萌酱大家好&#xff0c;我是卖萌酱。昨天在知乎timeline上刷到一个问题&#xff1a;虽然卖萌酱已经不需要系统学习机器学习了&#xff0c;但无意间发现最高赞的id竟然叫“吴恩达”&#xff1f;&#xff1f;好家伙&#xff0c;看了看回答日期&#xff0c;是4月8号。戳进去…