Highlight:
e.g.:
List = [1,2,3,4,5]
del List[2] # del List[obj], obj 为下标
print(List)
List = [1,2,4,5]
List = [1,2,3,4,5]
List.remove(3) #remove(obj), obj 为具体的值
print(List)
List = [1,2,4,5]
List = [1,2,3,4,5]
List.pop() # pop删除掉最后元素
print(List)
List = [1,2,3,4]
题目: n个整型数组nums(升序)和一个目标值 target, 在nums中搜寻 target值,若无目标值返回-1
思路:
左闭右开
while left < right, 条件 left = 0, right = len(nums)
左闭右闭(在这种情况下 left,righth实际上等同于数组内元素的下标)
while left <= right, 条件 left = 0, right = len(nums) - 1
center = left + ( right - left) // 2 # 防溢出
left和right进行移动的时候 既可以依照center为依据进行左右区间的划分(草图)
题目:
给你一个数组 nums
和一个值 val
,你需要 原地 移除所有数值等于 val
的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1)
额外空间并 原地 修改输入数组
思路:
例子中给出了 将所需要移除数值等于val的元素 变成 0 依旧可以通过,因此可以通过:
使用双指针遍历数组 当fast指针指到的元素不等于val时 将其值赋值给slow指针, slow指针接收到新赋值后移动至下一位置, 最后返回slow的值 即为移除数组的新长度
slow = 0
fast = 0
for fast in range(len(nums)):
if nums[fast] != val:
nums[slow] = nums[fast]
slow += 1
return slow