代码训练第1天|704.二分查找+27.移除元素

25 阅读1分钟

Leetcode 704.二分查找

题目链接:leetcode.cn/problems/sq…

思路:双指针

实现:没有想到从两边往中间遍历

tips:用while直接i-=1

def sortedSquares(self, nums: List[int]) -> List[int]:
    left, right, i = 0, len(nums)-1, len(nums)-1
    res = [0 for _ in range(len(nums))]
    while i >= 0:
        if nums[left]**2 >= nums[right]**2:
            res[i] = nums[left] ** 2
            left += 1
        else:
            res[i] = nums[right] ** 2
            right -= 1
        i -= 1
    return res

Leetcode 27.移除元素

题目链接:leetcode.cn/problems/re…

思路:直接用库函数。。。或者暴力(暴力过程中需要注意移动一组后,i下标需要前移一次)

实现:根据题目要求,不需每次把所有元素前移 → 学习双指针方法fast & slow,把需要的元素前移,抛弃等于val的

tips:循环条件只需考虑fast