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
  • 记录最大计数
class Solution {
public:int maxPower(string s) {int i, count = 0, maxc = 0;char prev = '*';for(i = 0; i < s.size(); ++i){if(prev == s[i])count++;elsecount = 1;maxc = max(count, maxc);prev = s[i];}return maxc;}
};

2. LeetCode 5397. 最简分数 medium

题目链接
给你一个整数 n ,请你返回所有 0 到 1 之间(不包括 0 和 1)满足分母小于等于 n 的 最简 分数 。
分数可以以 任意 顺序返回。

示例 1:
输入:n = 2
输出:["1/2"]
解释:"1/2" 是唯一一个分母小于等于 2 的最简分数。示例 2:
输入:n = 3
输出:["1/2","1/3","2/3"]示例 3:
输入:n = 4
输出:["1/2","1/3","1/4","2/3","3/4"]
解释:"2/4" 不是最简分数,因为它可以化简为 "1/2" 。示例 4:
输入:n = 1
输出:[]提示:
1 <= n <= 100

解题:

  • 求最大公约数,化简分子分母,遍历所有可能,插入set
class Solution {
public:vector<string> simplifiedFractions(int n) {unordered_set<string> ans;int i, k, g, u, d;for(k = 2; k <= n; ++k)for(i = 1; i < k; ++i){g = __gcd(i,k);u = i/g;d = k/g;ans.insert(to_string(u)+"/"+to_string(d));}return vector<string>(ans.begin(),ans.end());}
};

下面解法,无需去重,找最大公约数为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:
在这里插入图片描述

输入:root = [3,1,4,3,null,1,5]
输出:4
解释:图中蓝色节点为好节点。
根节点 (3) 永远是个好节点。
节点 4 -> (3,4) 是路径中的最大值。
节点 5 -> (3,4,5) 是路径中的最大值。
节点 3 -> (3,1,3) 是路径中的最大值。

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

输入:root = [3,3,null,4,2]
输出:3
解释:节点 2 -> (3, 3, 2) 不是好节点,因为 "3" 比它大。示例 3:
输入:root = [1]
输出:1
解释:根节点是好节点。提示:
二叉树中节点数目范围是 [1, 10^5] 。
每个节点权值的范围是 [-10^4, 10^4]

解答:

  • 简单的二叉树遍历,带一个最大值递归更新
class Solution {int count = 0;
public:int goodNodes(TreeNode* root) {dfs(root, root->val);return count;}void dfs(TreeNode* root, int maxv){if(!root) return;if(root->val >= maxv)count++;maxv = max(maxv, root->val);//更新最大值dfs(root->left, maxv);dfs(root->right,maxv);}
};

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

解题:
比赛回溯超时解:

[1,1,1,1,1,1,1,3,2] // 超时例子
10
class Solution {vector<vector<int>> v;string path, ans="0";int sum = 0;int t;bool found = false;
public:string largestNumber(vector<int>& cost, int target) {t = target;for(int i = 0; i < 9; ++i)v.push_back({cost[i],i+1});sort(v.begin(),v.end(),[](auto a, auto b){if(a[0]==b[0]) return a[1] > b[1];return a[0] < b[0];});dfs();sort(ans.begin(),ans.end(),[](auto a, auto b){return a > b;});return ans;}void dfs(){if(sum > t)return;if(sum == t){if(path.size() > ans.size() || (path.size() == ans.size() && path > ans))ans = path;return;}for(int i = 0; i < 9; ++i){sum += v[i][0];path += v[i][1]+'0';dfs();sum -= v[i][0];path.pop_back();}}
};

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

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

相关文章

世界是个班,美国是班长,中国是团支书(太经典了!)

1。美国 班长&#xff0c;家里有钱&#xff0c;人长得也强壮&#xff0c;学习成绩很好但也爱打架&#xff0c;做事蛮横无理&#xff0c;班里同学一般都不敢顶撞他。和副班长关系不好。 2。俄罗斯 副班长&#xff0c;学习成绩好&#xff0c;全班最高大&#xff0c;上学期光和班长…

蛤蟆 Oracle,47.蛤蟆笔记go——go连接Oracle

47.蛤蟆笔记go——go连接Oracle在连接ORACLE数据库之前我们先来看下一个概念OCI。ociORACLE调用接口(Oracle Call Interface简称OCI)提供了一组可对ORACLE数据库进行存取的接口子例程(函数)&#xff0c;通过在第三代程序设计语言(如C语言)中进行调用可达到存取ORACLE数据库的目…

LeetCode 1450. 在既定时间做作业的学生人数

1. 题目 给你两个整数数组 startTime&#xff08;开始时间&#xff09;和 endTime&#xff08;结束时间&#xff09;&#xff0c;并指定一个整数 queryTime 作为查询时间。 已知&#xff0c;第 i 名学生在 startTime[i] 时开始写作业并于 endTime[i] 时完成作业。 请返回在查…

linux系统限制内存使用率,linux中限制CPU和内存占用率方法

在linux中CPU与内存占用率限制的方法有几种我这里整理常用的两种&#xff0c;希望文章对各位同学会有所帮助哦。查看cpu占用在命令行中输入 “top”即可启动 toptop 的全屏对话模式可分为3部分&#xff1a;系统信息栏、命令输入栏、进程列表栏。使用top查看系统负荷top命令可以…

实现Table多类不同数据类型的排序(顺反)

JS如下&#xff1a; var TableUtil new Object(); TableUtil.Convert function(sValue,sDataType){ switch(sDataType) { case "int": return parseInt(sValue); case "float": return parseFloat(sValue); …

LeetCode 1451. 重新排列句子中的单词(桶排序)

1. 题目 「句子」是一个用空格分隔单词的字符串。给你一个满足下述格式的句子 text : 句子的首字母大写text 中的每个单词都用单个空格分隔。 请你重新排列 text 中的单词&#xff0c;使所有单词按其长度的升序排列。 如果两个单词的长度相同&#xff0c;则保留其在原句子中…

Linux系统服务器停服,Linux系统服务启动和停止

systemd 是在Linux上运行服务的新方式。 systemd 有一个被替代的 sysvinit 。 systemd为Linux带来更快的启动时间&#xff0c;现在是管理Linux服务的标准方式。虽然稳定&#xff0c; systemd 仍在不断发展。systemd 作为init系统&#xff0c;用于管理Linux内核引导后需要更改状…

如何计算MP3总时长的问题(三)--对于变比特率MP3求总时长

3、变比特率MP3总时长求解 之前我们所讨论的都是对于一个固定比特率&#xff08;CBR&#xff09;的MP3进行求总时长&#xff0c;由于固定比特率的特殊性&#xff0c;很容易第一帧的帧头就能知道整个MP3的信息&#xff0c;但是对于变比特率&#xff08;VBR&#xff09;的MP3&…

LeetCode 1452. 收藏清单(std::includes判断子集)

1. 题目 给你一个数组 favoriteCompanies &#xff0c;其中 favoriteCompanies[i] 是第 i 名用户收藏的公司清单&#xff08;下标从 0 开始&#xff09;。 请找出不是其他任何人收藏的公司清单的子集的收藏清单&#xff0c;并返回该清单下标。下标需要按升序排列。 示例 1&a…

2011年值得注意的5个设计趋势

在过去的12个月里&#xff0c;我们已经看到Web设计领域发生了许多变化。 包括智能手机和平板电脑(如iPad)这些移动设备的日渐普及已经改变了用户对内容的访问和交互方式。还有&#xff0c;像HTML5、web字体和CSS这些新标准的正式通过意味着越来越多的用户可以使用网络上最新最强…

linux内核线程绑定到单个核,linux 将进程或者线程绑定到指定的cpu上

基本概念cpu亲和性(affinity)CPU的亲和性&#xff0c; 就是进程要在指定的 CPU 上尽量长时间地运行而不被迁移到其他处理器&#xff0c;也称为CPU关联性&#xff1b;再简单的点的描述就将指定的进程或线程绑定到相应的cpu上&#xff1b;在多核运行的机器上&#xff0c;每个CPU本…

LeetCode 1453. 圆形靶内的最大飞镖数量(几何题)

1. 题目 墙壁上挂着一个圆形的飞镖靶。现在请你蒙着眼睛向靶上投掷飞镖。 投掷到墙上的飞镖用二维平面上的点坐标数组表示。飞镖靶的半径为 r 。 请返回能够落在 任意 半径为 r 的圆形靶内或靶上的最大飞镖数。 示例 1&#xff1a; 输入&#xff1a;points [[-2,0],[2,0…

熟悉linux运行环境,实验一 熟悉Ubuntu环境

实验一熟悉Ubuntu环境【实验目的】1&#xff0e;了解Ubuntu系统基本操作方法&#xff0c;学会独立使用该系统。2&#xff0e;熟悉Ubuntu下如何编辑、编译和运行一个C语言程序。3&#xff0e;学会利用gcc、gdb编译、调试C程序。【预习内容】1&#xff0e;预习Ubuntu下各种应用程…

Pandas入门1(DataFrame+Series读写/Index+Select+Assign)

文章目录1. Creating, Reading and Writing1.1 DataFrame 数据框架1.2 Series 序列1.3 Reading 读取数据2. Indexing, Selecting, Assigning2.1 类python方式的访问2.2 Pandas特有的访问方式2.2.1 iloc 基于index访问2.2.2 loc 基于label标签访问2.3 set_index() 设置索引列2.4…

关于Visual C#.NET数据库开发经典案例解析(附光盘两张)(珍藏版)—的读后感...

关于Visual C#.NET数据库开发经典案例解析&#xff08;附光盘两张&#xff09;&#xff08;珍藏版&#xff09;— 评论读后感&#xff1a;里面的内容很经典&#xff0c;很实用读后感&#xff1a;给初学者是好&#xff0c;但是是比较旧的了&#xff01;VS2003 C/S的读后感&#…

linux git还原文件,Gitlab备份到windows、在Linux恢复

一 备份gitlab为完整压缩包# 在目录/var/opt/gitlab/backups/ 创建备份文件gitlab-rake gitlab:backup:create/var/opt/gitlab/backups/1559614181_2019_06_04_10.7.7_gitlab_backup.tar查看备份文件夹容量df -h /var/opt/gitlab/backups二 恢复gitlab复制gitlab_backup.tar到对…

LeetCode 372. 超级次方(快速幂)

1. 题目 你的任务是计算 ab 对 1337 取模&#xff0c;a 是一个正整数&#xff0c;b 是一个非常大的正整数且会以数组形式给出。 示例 1: 输入: a 2, b [3] 输出: 8示例 2: 输入: a 2, b [1,0] 输出: 1024来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&…

c#让电脑锁定、注销、关机

代码 usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingMicrosoft.Win32;usingSystem.Runtime.InteropServices;usingSystem.IO;usingSystem…

linux错误自动报告工具,linux – 关闭abrt的电子邮件通知(自动错误报告工具)

我正在配置CentOS 6.2并且已经看到了一些“[abrt]完整崩溃报告”电子邮件.我知道abrt对于创建崩溃转储非常有用,所以我不想禁用该服务,我只是想停止获取崩溃报告电子邮件.我可能不得不在/etc/abrt/abrt.conf中添加一些配置文件.我似乎无法在搜索中找到任何内容.任何的想法&…

Pandas入门2(DataFunctions+Maps+groupby+sort_values)

文章目录3. Summary Functions and Maps3.1 Summary Functions 数据总结函数3.1.1 describe()3.1.2 mean()&#xff0c;median()&#xff0c;idxmax()&#xff0c;unique()&#xff0c;value_counts()3.2 Maps 映射3.2.1 map()3.2.2 apply()3.2.3 内置转换方法4. Grouping and …