欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > 力扣(2024.06.21)

力扣(2024.06.21)

2025/12/28 5:43:43 来源:https://blog.csdn.net/m0_52507142/article/details/139871429  浏览:    关键词:力扣(2024.06.21)

1. 54——螺旋矩阵

给你一个 m 行 n 列的矩阵 matrix ,请按照顺时针螺旋顺序 ,返回矩阵中的所有元素。

标签:数组,矩阵,模拟

代码:

class Solution:def spiralOrder(self, matrix: List[List[int]]) -> List[int]:top = 0bottom = len(matrix) - 1left = 0right = len(matrix[0]) - 1res = []while True:for i in range(left, right + 1):res.append(matrix[top][i])top = top + 1if top > bottom:breakfor i in range(top, bottom + 1):res.append(matrix[i][right])right = right - 1if right < left:breakfor i in range(right, left - 1, -1):res.append(matrix[bottom][i])bottom = bottom - 1if bottom < top:breakfor i in range(bottom, top - 1, -1):res.append(matrix[i][left])left = left + 1if left > right:breakreturn res

2. 55——跳跃游戏

给你一个非负整数数组 nums ,你最初位于数组的第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。

标签:数组,贪心,动态规划

代码:

class Solution:def canJump(self, nums: List[int]) -> bool:cover = 0i = 0while i <= cover:leng = i + nums[i]cover = leng if leng > cover else coverif cover >= len(nums) - 1:return Truei = i + 1return False

3. 56——合并区间

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。

标签:数组,排序

代码:

class Solution:def merge(self, intervals: List[List[int]]) -> List[List[int]]:intervals.sort()res = []res.append(intervals[0])for i in intervals:interval = res[-1]if i[0] <= interval[1]:start = interval[0]end = max(interval[1], i[1])res.pop()res.append([start, end])else:res.append(i)return res

4. 57——插入区间

给你一个无重叠的按照区间起始端点排序的区间列表 intervals,其中 intervals[i] = [starti, endi] 表示第 i 个区间的开始和结束,并且 intervals 按照 starti 升序排列。同样给定一个区间 newInterval = [start, end] 表示另一个区间的开始和结束。

在 intervals 中插入区间 newInterval,使得 intervals 依然按照 starti 升序排列,且区间之间不重叠(如果有必要的话,可以合并区间)。

返回插入之后的 intervals

注意你不需要原地修改 intervals。你可以创建一个新数组然后返回它。

标签:数组(目前不会)

代码:

5. 58——最后一个单词的长度

给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。单词是指仅由字母组成、不包含任何空格字符的最大子字符串。

标签:字符串

代码:

class Solution:def lengthOfLastWord(self, s: str) -> int:while s[0] == ' ':s = s[1:]while s[-1] == ' ':s = s[0:-1]left = len(s) - 1right = len(s) - 1while left >= 0 and s[left] != ' ':left = left - 1return right - left + 1 if left == 0 else right - left

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词