LeetCode 6055. 转化时间需要的最少操作数(贪心)
文章目录
- 1. 题目
- 2. 解题
1. 题目
给你两个字符串 current 和 correct ,表示两个 24 小时制时间 。
24 小时制时间 按 "HH:MM"
进行格式化,其中 HH 在 00 和 23 之间,而 MM 在 00 和 59 之间。
最早的 24 小时制时间为 00:00 ,最晚的是 23:59 。
在一步操作中,你可以将 current
这个时间增加 1、5、15 或 60 分钟。
你可以执行这一操作 任意 次数。
返回将 current 转化为 correct 需要的 最少操作数 。
示例 1:
输入:current = "02:30", correct = "04:35"
输出:3
解释:
可以按下述 3 步操作将 current 转换为 correct :
- 为 current 加 60 分钟,current 变为 "03:30" 。
- 为 current 加 60 分钟,current 变为 "04:30" 。
- 为 current 加 5 分钟,current 变为 "04:35" 。
可以证明,无法用少于 3 步操作将 current 转化为 correct 。示例 2:
输入:current = "11:00", correct = "11:01"
输出:1
解释:只需要为 current 加一分钟,所以最小操作数是 1 。提示:
current 和 correct 都符合 "HH:MM" 格式
current <= correct
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-number-of-operations-to-convert-time
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
- 贪心,优先使用大的数字
class Solution {public:int convertTime(string current, string correct) {int diff = getminutes(correct)-getminutes(current);int ans = 0;operate(diff, ans, 60);operate(diff, ans, 15);operate(diff, ans, 5);operate(diff, ans, 1);return ans;}int getminutes(string s){return ((s[0]-'0')*10+(s[1]-'0'))*60+(s[3]-'0')*10+(s[4]-'0');}void operate(int& diff, int& ans, int interval){if(diff >= interval){ans += diff/interval;diff -= diff/interval*interval;}}
};
0 ms 5.8 MB C++
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
LeetCode 6055. 转化时间需要的最少操作数(贪心)相关推荐
- LeetCode每日一题——1758. 生成交替二进制字符串的最少操作数
LeetCode每日一题系列 题目:1758. 生成交替二进制字符串的最少操作数 难度:简单 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给你一个仅由字符 '0' 和 '1' ...
- LeetCode 1758. 生成交替二进制字符串的最少操作数(DP)
文章目录 1. 题目 2. 解题 1. 题目 给你一个仅由字符 '0' 和 '1' 组成的字符串 s . 一步操作中,你可以将任一 '0' 变成 '1' ,或者将 '1' 变成 '0' . 交替字符串 ...
- C++描述 LeetCode 5676. 生成交替二进制字符串的最少操作数
C++描述 LeetCode 5676. 生成交替二进制字符串的最少操作数 大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在C ...
- 8瓶酒一瓶有毒,用人测试。每次测试结果8小时后才会得出,而你只有8个小时的时间。问最少需要(B)人测试?
8瓶酒一瓶有毒,用人测试.每次测试结果8小时后才会得出,而你只有8个小时的时间.问最少需要(B)人测试? A.2 B.3 C.4 D.6 解析:用 ...
- LeetCode 921. 使括号有效的最少添加(栈)
1. 题目 给定一个由 '(' 和 ')' 括号组成的字符串 S,我们需要添加最少的括号( '(' 或是 ')',可以在任何位置),以使得到的括号字符串有效. 从形式上讲,只有满足下面几点之一,括号字 ...
- 1758 生成交替二进制字符串的最少操作数
题目描述: 给你一个仅由字符 '0' 和 '1' 组成的字符串 s .一步操作中,你可以将任一 '0' 变成 '1' ,或者将 '1' 变成 '0' . 交替字符串 定义为:如果字符串中不存在相邻两个 ...
- leetcode---1758.生成交替二进制字符串的最少操作数
目录 题目:给你一个仅由字符 '0' 和 '1' 组成的字符串 s .一步操作中,你可以将任一 '0' 变成 '1' ,或者将 '1' 变成 '0' . 交替字符串 定义为:如果字符串中不存在相邻两个 ...
- LeetCode-1758-生成交替二进制字符串的最少操作数
1.逐位遍历 我们想要获得最少操作数,实际上只要与两个字符串进行比较即可,一个是1010交替的字符串,一个是0101交替的字符串.其中我们实际上只需要比较一个字符串即可,因为修改成另一个字符串的操作数 ...
- 1110: 最少操作数
1110: 最少操作数 1.描述 最近,Dr. Kong 又新设计了一个机器人Bill.这台机器人很聪明,会做许多事情.比如你给它任意一个正整数,它可以按照一定的运算规则, 计算出得到1的最少操作次数 ...
最新文章
- 空间正交基的定义_高等代数|第九章 欧几里得空间 子空间与对称变换
- Shell until循环
- java 结构体_Java实现单链表的简单操作
- 中国联通与成都携手,合作打造全球领先的大数据平台
- python day3 python基础
- android studio 收藏,Android Studio把文件加入收藏夹并打开的简单操作讲述
- python获取参数
- 使用getopt函数对命令行短形参进行处理
- 2016年大数据发展趋势预测
- plc secs半导体通讯协议 PLC 与MES的SECS/GEM通讯方案
- Ubuntu Qt 无法覆盖文件 错误解决方法
- 明尼苏达计算机科学硕士录取案例,专业42-明尼苏达大学双城分校研究生录取-W同学...
- 数据学习(十)-假设检验
- Mac下复制粘贴的快捷键是什么?随记
- 原始分布式架构服务探索的得与失
- 2020考研计算机(408)考试大纲
- Springboot项目整合xxl -job
- Java彩信接口开发经验及具体开发实现
- linux/windows_vscode_配置mingw的C/C++环境(by official doc)/一些可能遇到的问题和对策)/vscode中文输出乱码问题
- Magisk root 原理分析之二 :Android Verified Boot (AVB)