LeetCode题解(0681):最近时刻(Python)

题目:原题链接(中等)

标签:字符串、贪心算法

解法时间复杂度空间复杂度执行用时
Ans 1 (Python) O ( 24 + 60 ) O(24+60) O(24+60) O ( 1 ) O(1) O(1)40ms (65.45%)
Ans 2 (Python)
Ans 3 (Python)

解法一:

class Solution:
    def nextClosestTime(self, time: str) -> str:
        hour1, minute1 = time.split(":")
        numbers = set(hour1 + minute1)
        hour2 = hour1
        minute2 = minute1

        # 寻找更大的分钟
        for i in range(int(minute1) + 1, 60):
            minute = str(i).zfill(2)
            if minute[0] in numbers and minute[1] in numbers:
                return hour2 + ":" + minute

        # 寻找更大的小时
        for i in range(int(hour1) + 1, 24):
            temp = str(i).zfill(2)
            if temp[0] in numbers and temp[1] in numbers:
                hour2 = temp
                break

        # 寻找最小的分钟
        for i in range(0, 60):
            temp = str(i).zfill(2)
            if temp[0] in numbers and temp[1] in numbers:
                minute2 = temp
                break

        # 这一天还有更大的小时
        if hour1 != hour2:
            return hour2 + ":" + minute2

        # 寻找下一天里最小的小时
        for i in range(0, 23):
            hour2 = str(i).zfill(2)
            if hour2[0] in numbers and hour2[1] in numbers:
                return hour2 + ":" + minute2

        # 无法改变
        return hour1 + ":" + minute1

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...