数组977|209|59
977有序数组的平方
class Solution: def sortedSquares(self, nums: List[int]) -> List[int]: left = 0 right = len(nums) - 1 result = [0] * len(nums) i = len(nums) - 1 while left <= right and i >= 0: if nums[left] ** 2 <= nums[right] ** 2: result[i] = nums[right] ** 2 right -= 1 elif nums[left] ** 2 > nums[right] ** 2: result[i] = nums[left] ** 2 left += 1 i -= 1 return result
209长度最小的子数组
class Solution: def minSubArrayLen(self, target: int, nums: List[int]) -> int: fast = 0 slow = 0 result = float('inf') sum = nums[0] while fast < len(nums): if sum >= target: if result > (fast - slow + 1): result = fast - slow + 1 sum -= nums[slow] slow += 1 elif sum < target: fast += 1 if fast < len(nums): sum += nums[fast] if result != float('inf'): return result elif result == float('inf'): return 0
59螺旋矩阵II
class Solution: def generateMatrix(self, n: int) -> List[List[int]]: matrix = [] for i in range(n): row = [0] * n matrix.append(row) bot = 0 top = n - 1 m = 1 while bot < top: for i in range(bot, top): matrix[bot][i] = m m += 1 for i in range(bot, top): matrix[i][top] = m m += 1 for i in range(top, bot, -1): matrix[top][i] = m m += 1 for i in range(top, bot, -1): matrix[i][bot] = m m += 1 bot += 1 top -= 1 if n % 2 != 0: matrix[n//2][n//2] = m return matrix