definsert(nums: list[int], num: int, index: int): # 把索引index以及之后的所有元素向后移动一位 for i inrange(len(nums) - 1, index, -1): nums[i] = nums[i - 1] # 将num插入到索引index的位置 nums[index] = num
1.4 删除元素
1 2 3 4
defremove(nums: list[int], index: int): # 把索引index以及之后的所有元素向前移动一位 for i inrange(index, len(nums) - 1): nums[i] = nums[i + 1]
数组的插入与删除操作缺点:
时间复杂度高
丢失元素
内存浪费
1.5 遍历元素
1 2 3 4 5 6 7 8 9 10 11 12
deftraverse(nums: list[int]): count = 0 # 通过索引遍历 for i inrange(len(nums)): count += nums[i] # 直接遍历 for num in nums: count += num # 同时遍历索引和元素 for i, num inenumerate(nums): count += nums[i] count += num
1.6 查找元素
1 2 3 4 5
deffind(nums: list[int], target: int) -> int: for i inrange(len(nums)): if nums[i] == target: return i return -1
1.7 扩容元素
1 2 3 4 5
defextend(nums: list[int], enlarge: int) -> list[int]: res = [0] * (len(nums) + enlarge) for i inrange(len(nums)): res[i] = nums[i] return res