文章目录

  • 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. 转化时间需要的最少操作数(贪心)相关推荐

  1. LeetCode每日一题——1758. 生成交替二进制字符串的最少操作数

    LeetCode每日一题系列 题目:1758. 生成交替二进制字符串的最少操作数 难度:简单 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给你一个仅由字符 '0' 和 '1' ...

  2. LeetCode 1758. 生成交替二进制字符串的最少操作数(DP)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个仅由字符 '0' 和 '1' 组成的字符串 s . 一步操作中,你可以将任一 '0' 变成 '1' ,或者将 '1' 变成 '0' . 交替字符串 ...

  3. C++描述 LeetCode 5676. 生成交替二进制字符串的最少操作数

    C++描述 LeetCode 5676. 生成交替二进制字符串的最少操作数   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在C ...

  4. 8瓶酒一瓶有毒,用人测试。每次测试结果8小时后才会得出,而你只有8个小时的时间。问最少需要(B)人测试?

    8瓶酒一瓶有毒,用人测试.每次测试结果8小时后才会得出,而你只有8个小时的时间.问最少需要(B)人测试? A.2         B.3         C.4            D.6 解析:用 ...

  5. LeetCode 921. 使括号有效的最少添加(栈)

    1. 题目 给定一个由 '(' 和 ')' 括号组成的字符串 S,我们需要添加最少的括号( '(' 或是 ')',可以在任何位置),以使得到的括号字符串有效. 从形式上讲,只有满足下面几点之一,括号字 ...

  6. 1758 生成交替二进制字符串的最少操作数

    题目描述: 给你一个仅由字符 '0' 和 '1' 组成的字符串 s .一步操作中,你可以将任一 '0' 变成 '1' ,或者将 '1' 变成 '0' . 交替字符串 定义为:如果字符串中不存在相邻两个 ...

  7. leetcode---1758.生成交替二进制字符串的最少操作数

    目录 题目:给你一个仅由字符 '0' 和 '1' 组成的字符串 s .一步操作中,你可以将任一 '0' 变成 '1' ,或者将 '1' 变成 '0' . 交替字符串 定义为:如果字符串中不存在相邻两个 ...

  8. LeetCode-1758-生成交替二进制字符串的最少操作数

    1.逐位遍历 我们想要获得最少操作数,实际上只要与两个字符串进行比较即可,一个是1010交替的字符串,一个是0101交替的字符串.其中我们实际上只需要比较一个字符串即可,因为修改成另一个字符串的操作数 ...

  9. 1110: 最少操作数

    1110: 最少操作数 1.描述 最近,Dr. Kong 又新设计了一个机器人Bill.这台机器人很聪明,会做许多事情.比如你给它任意一个正整数,它可以按照一定的运算规则, 计算出得到1的最少操作次数 ...

最新文章

  1. 空间正交基的定义_高等代数|第九章 欧几里得空间 子空间与对称变换
  2. Shell until循环
  3. java 结构体_Java实现单链表的简单操作
  4. 中国联通与成都携手,合作打造全球领先的大数据平台
  5. python day3 python基础
  6. android studio 收藏,Android Studio把文件加入收藏夹并打开的简单操作讲述
  7. python获取参数
  8. 使用getopt函数对命令行短形参进行处理
  9. 2016年大数据发展趋势预测
  10. plc secs半导体通讯协议 PLC 与MES的SECS/GEM通讯方案
  11. Ubuntu Qt 无法覆盖文件 错误解决方法
  12. 明尼苏达计算机科学硕士录取案例,专业42-明尼苏达大学双城分校研究生录取-W同学...
  13. 数据学习(十)-假设检验
  14. Mac下复制粘贴的快捷键是什么?随记
  15. 原始分布式架构服务探索的得与失
  16. 2020考研计算机(408)考试大纲
  17. Springboot项目整合xxl -job
  18. Java彩信接口开发经验及具体开发实现
  19. linux/windows_vscode_配置mingw的C/C++环境(by official doc)/一些可能遇到的问题和对策)/vscode中文输出乱码问题
  20. Magisk root 原理分析之二 :Android Verified Boot (AVB)

热门文章

  1. Python 之打包工具 setup.py
  2. 大学计算机应用基础考试题库,大学计算机应用基础考试题库
  3. 远程控制python
  4. php实现注册登陆验证
  5. cemtos7上mysql8两个实例_centos7上配置mysql8的双主互写
  6. 火山去水印链接_在线批量去水印下载快手图集视频、抖音、火山等平台方法技巧!...
  7. web前端细解cookie那些事
  8. dubbo与springmvc的简单使用
  9. 深入理解计算机系统 第十二章 并发编程
  10. HDU4859 海岸线(最小割)