文章目录
Python小白 Leetcode刷题历程 No.56-No.60 合并区间、插入区间、最后一个单词的长度、螺旋矩阵Ⅱ、第k个排列
写在前面:
作为一个计算机院的大学生,总觉得仅仅在学校粗略的学习计算机专业课是不够的,尤其是假期大量的空档期,作为一个小白,实习也莫得路子,又不想白白耗费时间。于是选择了Leetcode这个平台来刷题库。编程我只学过基础的C语言,现在在自学Python,所以用Python3.8刷题库。现在我Python掌握的还不是很熟练,算法什么的也还没学,就先不考虑算法上的优化了,单纯以解题为目的,复杂程度什么的以后有时间再优化。计划顺序五个题写一篇日志,希望其他初学编程的人起到一些帮助,写算是对自己学习历程的一个见证了吧。
有一起刷LeetCode的可以关注我一下,我会一直发LeetCode题库Python3解法的,也可以一起探讨。
觉得有用的话可以点赞关注下哦,谢谢大家!
········································································································································································
题解框架:
1.题目,难度
2.题干,题目描述
3.题解代码(Python3(不是Python,是Python3))
4.或许有用的知识点(不一定有)
5.解题思路
6.优解代码及分析(当我发现有比我写的好很多的代码和思路我就会写在这里)
········································································································································································
No.56.合并区间
难度:中等
题目描述:
题解代码(Python3.8)
class Solution:
def merge(self, intervals: List[List[int]]) -> List[List[int]]:
intervals.sort()
l=len(intervals)
res=[]
if l==0:
return res
i=0
left=intervals[i][0]
right=intervals[i][1]
while i<l:
left=intervals[i][0]
right=intervals[i][1]
while i<l-1 and intervals[i+1][0]<=right:
i+=1
right=max(intervals[i][1],right)
res.append([left,right]