手机商城网站源码,个人如何网站备案,网站底部固定广告代码,发帖子的网站1. 54——螺旋矩阵
给你一个 m 行 n 列的矩阵 matrix #xff0c;请按照顺时针螺旋顺序 #xff0c;返回矩阵中的所有元素。
标签#xff1a;数组#xff0c;矩阵#xff0c;模拟
代码#xff1a;
class Solution:def spiralOrder(self, matrix: List[List[int]]) -请按照顺时针螺旋顺序 返回矩阵中的所有元素。
标签数组矩阵模拟
代码
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