2224:转化时间需要的最少操作数

This commit is contained in:
轩辕龙儿 2022-04-14 17:40:38 +08:00
parent 9b068e97dd
commit 1c3219fcb5
2 changed files with 108 additions and 0 deletions

View File

@ -0,0 +1,71 @@
//给你两个字符串 current correct 表示两个 24 小时制时间
//
// 24 小时制时间 "HH:MM" 进行格式化其中 HH 00 23 之间 MM 00 59 之间最早的 24 小时制时间为 0
//0:00 最晚的是 23:59
//
// 在一步操作中你可以将 current 这个时间增加 1515 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
//
// Related Topics 贪心 字符串 👍 7 👎 0
package leetcode.editor.cn;
//2224:转化时间需要的最少操作数
public class MinimumNumberOfOperationsToConvertTime {
public static void main(String[] args) {
Solution solution = new MinimumNumberOfOperationsToConvertTime().new Solution();
// TO TEST
}
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
public int convertTime(String current, String correct) {
String strs1[] = current.split(":");
String strs2[] = correct.split(":");
int sum = Integer.parseInt(strs2[0]) * 60
+ Integer.parseInt(strs2[1])
- Integer.parseInt(strs1[0]) * 60
- Integer.parseInt(strs1[1]);
int count = 0;
int[] arrs = new int[]{60, 15, 5, 1};
for (int arr : arrs) {
if (sum >= arr) {
count += sum / arr;
sum %= arr;
}
}
return count;
}
}
//leetcode submit region end(Prohibit modification and deletion)
}

View File

@ -0,0 +1,37 @@
<p>给你两个字符串 <code>current</code><code>correct</code> ,表示两个 <strong>24 小时制时间</strong></p>
<p><strong>24 小时制时间</strong><code>"HH:MM"</code> 进行格式化,其中 <code>HH</code><code>00</code><code>23</code> 之间,而 <code>MM</code><code>00</code><code>59</code> 之间。最早的 24 小时制时间为 <code>00:00</code> ,最晚的是 <code>23:59</code></p>
<p>在一步操作中,你可以将 <code>current</code> 这个时间增加 <code>1</code><code>5</code><code>15</code><code>60</code> 分钟。你可以执行这一操作 <strong>任意</strong> 次数。</p>
<p>返回将&nbsp;<code>current</code><em> </em>转化为<em> </em><code>correct</code> 需要的 <strong>最少操作数</strong></p>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<pre><strong>输入:</strong>current = "02:30", correct = "04:35"
<strong>输出:</strong>3
<strong>解释:
</strong>可以按下述 3 步操作将 current 转换为 correct
- 为 current 加 60 分钟current 变为 "03:30" 。
- 为 current 加 60 分钟current 变为 "04:30" 。
- 为 current 加 5 分钟current 变为 "04:35" 。
可以证明,无法用少于 3 步操作将 current 转化为 correct 。</pre>
<p><strong>示例 2</strong></p>
<pre><strong>输入:</strong>current = "11:00", correct = "11:01"
<strong>输出:</strong>1
<strong>解释:</strong>只需要为 current 加一分钟,所以最小操作数是 1 。
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>current</code><code>correct</code> 都符合 <code>"HH:MM"</code> 格式</li>
<li><code>current &lt;= correct</code></li>
</ul>
<div><div>Related Topics</div><div><li>贪心</li><li>字符串</li></div></div><br><div><li>👍 7</li><li>👎 0</li></div>