02 数组 有序数组的平方+长度最小的子数组

代码随想录,第二天
力扣 977. 有序数组的平方
双指针法 Python版本

class Solution:
    def sortedSquares(self, nums: List[int]) -> List[int]:
        n = len(nums)
        ans = [0] * n
        i, j, pos = 0, n - 1, n - 1
        while i <= j:
            if nums[i] * nums[i] > nums[j] * nums[j]:
                ans[pos] = nums[i] * nums[i]
                i += 1
            else:
                ans[pos] = nums[j] * nums[j]
                j -= 1
            pos -= 1
        
        return ans

————————————————————————————————————————————
力扣 209. 长度最小的子数组
滑动窗口 Python版本

# 滑动窗口
class Solution:
    def minSubArrayLen(self, target: int, nums: List[int]) -> int:
        if nums is None or len(nums) == 0: 
            return 0 
        lenf = len(nums) + 1
        total = 0
        i = j = 0
        while (j < len(nums)):
            total = total + nums[j]
            j += 1
            while (total >= target):
                lenf = min(lenf, j - i)
                total = total - nums[i]
                i += 1
        if lenf == len(nums) + 1:
            return 0
        else: 
            return lenf

以上为学习《代码随想录》所得,感谢!

你可能感兴趣的:(leetcode,算法,python)