1 leetcode56. 合并区间
文章链接:代码随想录
视频链接:贪心算法,合并区间有细节!LeetCode:56.合并区间哔哩哔哩bilibili
思路:其实很清楚,跟之前的方法差不多,但是自己写的时候就是有地方不会了,会不知道接下来的思路是什么
1.1 视频后的思路
卡壳的地方居然是result里面增加数据,这一块确实有点没想到
class Solution: def merge(self, intervals: List[List[int]]) -> List[List[int]]: intervals.sort(key=lambda x:(x[0],x[1])) result = [] result.append(intervals[0]) for i in range(1,len(intervals)): if intervals[i][0]<=result[-1][1]: result[-1][1] = max(intervals[i][1],result[-1][1]) else: result.append(intervals[i]) return result
1.2 本题小结
-
这个题目,确实就是中间那里想不到,所以就是一直不对,但是看了别人的方法以后就明白了
-
每次就是思路慢慢正确了,写的时候会有一点不知道怎么写,目前需要逐步解决这个问题
2 leetcode738.单调递增的数字
题目链接:738. 单调递增的数字 - 力扣(LeetCode)
文章链接:代码随想录
视频链接:贪心算法,思路不难想,但代码不好写!LeetCode:738.单调自增的数字哔哩哔哩bilibili
思路:怎么说呢,我想的是就是用最大的数来判断吧,但是写的时候有点不知道怎么去写
2.1 视频后的思路
有一种学了后面的忘了后面的,直接没写出来,但是看了吧转换也确实挺有效的
class Solution: def monotoneIncreasingDigits(self, n: int) -> int: str_n = list(str(n)) for i in range(len(str_n)-2,-1,-1): if str_n[i]>str_n[i+1]: str_n[i] = str(int(str_n[i])-1) for j in range(i+1,len(str_n)): str_n[j] = '9' return int(''.join(str_n))
2.2 本题小结
-
真的有一种这个题目之前真的做过,后来我给忘了,但是写的时候呢,我就感觉我明白了一些
-
其实写到这里,我不觉得贪心算法很难,真的挺明了的,但是呢,尝试的不多的时候,还是会迷惑,实在不会其实使用python来测试,就好了
3 今日小结
-
今日后面的题目其实感觉有一种注意力不集中,就很难自己写出来吧,就有些迷糊的感觉
-
这两道题目其实真的不太难,但是主要就是数据的转换形式,会想不到
-
希望下一天的我会比现在的我好很多吧