| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 力扣——第298场周赛 -> 正文阅读 |
|
[数据结构与算法]力扣——第298场周赛 |
力扣——第298场周赛5242. 兼具大小写的最好英文字母给你一个由英文字母组成的字符串 s ,请你找出并返回 s 中的 最好 英文字母。返回的字母必须为大写形式。如果不存在满足条件的字母,则返回一个空字符串。 最好 英文字母的大写和小写形式必须 都 在 s 中出现。 英文字母 b 比另一个英文字母 a 更好 的前提是:英文字母表中,b 在 a 之 后 出现。 示例 1:
提示:
问题解析哈希表记录遍历过的字符,把大小写同时出现的字符都找出来,取最大的。 AC代码
5218. 个位数字为 K 的整数之和给你两个整数 num 和 k ,考虑具有以下属性的正整数多重集: 每个整数个位数字都是 k 。 注意: 多重集与集合类似,但多重集可以包含多个同一整数,空多重集的和为 0 。 示例 1:
提示:
问题解析判断一下多少个k相加可以得到个位数和num一样的数,我们用一个变量cnt当计数器来计算,即至少要cnt个k相加才可以得到个位数和num一样的数,如果cnt*k大于num了,说明我们无法组成num,返回-1,例如:num=12,k=8,至少要4个8相加才能得到结尾为2的数,但32大于12,所以不行。如果不大于num,那么实际上答案就是cnt了,至于num和cnt *k的差值,反正不会影响到个位数,我们随便给集合中的一个数加上就行,例如:num=22,k=4,那么集合就是{4,4,4,14}。如果num为0就直接返回0即可。 还有一点就是不管咋算都得不到个位数和num一样的情况,例如:num=15,k=2。为此我们加个判断,如果cnt大于100了还没找到,我们就返回-1。 AC代码
6099. 小于等于 K 的最长二进制子序列给你一个二进制字符串 s 和一个正整数 k 。 请你返回 s 的 最长 子序列,且该子序列对应的 二进制 数字小于等于 k 。 注意: 子序列可以有 前导 0 。 示例 1:
问题解析贪心策略。我们可以把s的后缀都取了,取到这个后缀转成10进制数会大于k为止,然后我们把剩下的0全部选上。 为什么直接取后缀可以呢?举个例子,比如s是”10001001“,k是5(二进制:101),我们取后缀只能取001,因为取到1001时就大于k了,如果我们少取一个0,来取到子序列101,实际上此时长度还是3,也就是说你想取1就会少对应的0,有时候少0的个数可能还大于你取一的个数,所以我们干脆直接取完后缀,然后把剩下的0全取了,这些0不会影响我们整体的值。 AC代码
5254. 卖木头块给你两个整数 m 和 n ,分别表示一块矩形木块的高和宽。同时给你一个二维整数数组 prices ,其中 prices[i] = [hi, wi, pricei] 表示你可以以 pricei 元的价格卖一块高为 hi 宽为 wi 的矩形木块。 每一次操作中,你必须按下述方式之一执行切割操作,以得到两块更小的矩形木块: 沿垂直方向按高度 完全 切割木块,或 请你返回切割一块大小为 m x n 的木块后,能得到的 最多 钱数。 注意你可以切割木块任意次。 示例 1:
问题解析区间dp。 可以用一个二维数组f来存价格,f[i] [j]表示高度为i,宽度j的木块价格为f[i] [j]。 另一个二维数组dp来作dp数组,dp[i] [j]表示高度为i,宽度为j的木块最多可以卖出dp[i] [j]元。 对于一个木块: 我们可以枚举分界线k来把它竖着切开宽度不同的两个木块,状态转移就是: dp[i] [j]=max(dp[i] [j],dp[i] [j-k]+dp[i] [k]); 我们可以枚举分界线k来把它横着切开高度不同的两个木块,状态转移就是: dp[i] [j]=max(dp[i] [j],dp[k] [j]+dp[i-k] [j]); 最后返回dp[m] [n]即可。 AC代码
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 1:52:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |