当前位置:网站首页>力扣84 双周赛 t4 6144 和力扣305周赛t4 6138
力扣84 双周赛 t4 6144 和力扣305周赛t4 6138
2022-08-08 04:28:00 【钰娘娘】
6144. 将数组排序的最少替换次数
给你一个下表从 0 开始的整数数组
nums。每次操作中,你可以将数组中任何一个元素替换为 任意两个 和为该元素的数字。
- 比方说,
nums = [5,6,7]。一次操作中,我们可以将nums[1]替换成2和4,将nums转变成[5,2,4,7]。请你执行上述操作,将数组变成元素按 非递减 顺序排列的数组,并返回所需的最少操作次数。
示例 1:
输入:nums = [3,9,3] 输出:2 解释:以下是将数组变成非递减顺序的步骤: - [3,9,3] ,将9 变成 3 和 6 ,得到数组 [3,3,6,3] - [3,3,6,3] ,将 6 变成 3 和 3 ,得到数组 [3,3,3,3,3] 总共需要 2 步将数组变成非递减有序,所以我们返回 2 。示例 2:
输入:nums = [1,2,3,4,5] 输出:0 解释:数组已经是非递减顺序,所以我们返回 0 。提示:
1 <= nums.length <= 1e51 <= nums[i] <= 1e9
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/maximum-employees-to-be-invited-to-a-meeting
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
做题结果
失败,被自己乱写一个case卡死 [2,7,3],第二个7的替换策略想不通
方法:贪心
1. 从后向前找
2. 如果比后面的大,就按后面的数字平分,看看能分几份,如果整除,后续数字不变,分成 part-1份(西瓜切两半只要一刀)
3. 如果不能整除,则尽可能地均分,增大开头的数字,由于没整除,多分出一份 next+1 份,尽可能平均让开头数字变大
class Solution {
public long minimumReplacement(int[] nums) {
int n = nums.length;
long ans = 0L;
int next = nums[n-1];
for(int i = n-2; i >= 0; i--){
if(nums[i]>next){
int part = nums[i]/next;
if(nums[i]%next==0) {
ans += part-1;
}else{
ans += part;
next = nums[i]/(part+1);
}
}else next = nums[i];
}
return ans;
}
}6138. 最长理想子序列
给你一个由小写字母组成的字符串
s,和一个整数k。如果满足下述条件,则可以将字符串t视作是 理想字符串 :
t是字符串s的一个子序列。t中每两个 相邻 字母在字母表中位次的绝对差值小于或等于k。返回 最长 理想字符串的长度。
字符串的子序列同样是一个字符串,并且子序列还满足:可以经由其他字符串删除某些字符(也可以不删除)但不改变剩余字符的顺序得到。
注意:字母表顺序不会循环。例如,
'a'和'z'在字母表中位次的绝对差值是25,而不是1。示例 1:
输入:s = "acfgbd", k = 2 输出:4 解释:最长理想字符串是 "acbd" 。该字符串长度为 4 ,所以返回 4 。 注意 "acfgbd" 不是理想字符串,因为 'c' 和 'f' 的字母表位次差值为 3 。示例 2:
输入:s = "abcd", k = 3 输出:4 解释:最长理想字符串是 "abcd" ,该字符串长度为 4 ,所以返回 4 。提示:
1 <= s.length <= 1050 <= k <= 25s由小写英文字母组成来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/longest-ideal-subsequence
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
做题结果
成功,这题是中等,直接秒了
方法:动态规划
前一个范围 max(index-k) 到 min(index+k 25) 都可以延长一个到当前字母,选取里面最长的一个和自己相连,注意自己长度是1需要额外增加一个。
class Solution {
public int longestIdealString(String s, int k) {
int[] dp = new int[26];
int n = s.length();
int ans = 0;
for(int i = 0; i < n; i++){
int v =0 ;
int index = s.charAt(i)-'a';
for(int start = Math.max(index-k,0); start<=Math.min(index+k,25);start++){
v=Math.max(dp[start],v);
}
dp[index] = v+1;
ans = Math.max(v+1,ans);
}
return ans;
}
}边栏推荐
- MindFusion.WPF Pack 2022.R1
- MySql入门教程
- 【多任务模型】《Multi-Faceted Hierarchical Multi-Task Learning for a Large Number of Tasks with Multi-dimens
- 中间件的一些坑记录
- Open3D 基于颜色的ICP配准
- New ToDesk Enterprise Edition | Ten new features to make enterprise remote control safer, more convenient and smoother
- 响应式pbootcms模板健身器械类网站
- Voice identification software
- 亚马逊云科技Build On学习心得
- NLP之基本介绍
猜你喜欢

MySQL从入门到入土【20W字收藏篇】

使用 Presto 和 Alluxio 在 AWS 上搭建高性能平台来支持实时游戏服务

让你的文字被更多人看到:来投稿吧,稿酬靠谱!

This article will give you a thorough understanding of synchronized and Lock

向往的开源之多YOUNG新生 | 从开源到就业的避坑指南来啦!

leetcode: 874. Simulate a walking robot

08 获取器 withAttr、多连缀、whereRaw、事务、数据集《ThinkPHP6 入门到电商实战》

以0为底或以1为底对图片迭代次数的影响

数据在内存如何分布的?

06 tp6 的数据更新(改)及删除 《ThinkPHP6 入门到电商实战》
随机推荐
vulnhub-DC-3 drone penetration record
[opencv] Introduction to opencv development kit
Amazon Cloud Technology Build On Learning Experience
【模板引擎】velocity
第4周 一步步搭建多层神经网络以及应用(1 & 2)
This article will give you a thorough understanding of synchronized and Lock
数据库篇复习篇
【直播回顾】昇思MindSpore易用性SIG2022上半年回顾总结
L3-005 Litter box distribution
Heterogeneous on the Graph paper to share 】 【 small sample learning: HG - Meta: Graph Meta - learning over Heterogeneous Graphs
Week 4 Step by step building multi-layer neural network and application (1 & 2)
Strong Net Cup 2019 - Casual Bet (Stacked Injection)
y90.第六章 微服务、服务网格及Envoy实战 -- 服务网格基础(一)
unity之粒子特效制作图片拼合文字效果
NetCore uses Dapper to query data
MYSQL导出数据字典
Young freshmen who yearn for open source | The guide to avoiding pits from open source to employment is here!
Shell 脚本 — 多行注释、开启子/不开启子进程执行、转义带颜色输出、读取键盘输入、输入输出重定向、单双引号、命令替换、读取变量、系统变量、正则过滤、算术运算、一行多条命令、字符串比较
MySQL from entry to entry [20W word collection]
ES6对象字面量的新功能