两数之和
def twoSum(self, nums: List[int], target: int) -> List[int]:
numDict = dict()
for i in range(len(nums)):
if target-nums[i] in numDict:
return numDict[target-nums[i]], i
numDict[nums[i]] = i
return [0]
为什么用哈希表?——哈希表避免重复,判断一个元素之前是否遍历过。
用map哈希,map存放遍历过的元素——要查找的是元素,元素作为key
python的extend()方法实现串联——数组串联题
append()是向列表尾部追加一个新元素,列表只占一个索引位,在原有列表上增加。
extend()向列表尾部追加一个列表,将列表中的每个元素都追加进来,在原有列表上增加。
大写字母 A - Z的ASCII 码范围为 [65,90]
小写字母 a - z 的ASCII 码范围为 [97,122]
数组
数组的寻址公式:下标i对应的数据元素地址 = 数据首地址 + i× 单个数据元素所占内存大小。
原生 Python 中其实没有数组的概念,而是使用了类似 Java 中的 ArrayList 容器类数据结构,叫做列表。通常我们把列表来作为 Python 中的数组使用。Python 中列表存储的数据类型可以不一致,数组长度也可以不一致。
python在列表中插入数据:append和insert
Python 中的 list 列表直接封装了删除数组尾部元素的操作,只需要调用 pop 方法即可。
基于条件删除元素:remove(要删除的值)
189.轮转数组:
考虑到k大于len(nums)的情况,k要取余
nums与nums[:]的区别:前者指数组的对象,后者指数组中的元素
题目:
描述:给定一个数组nums,再给定一个数字k。
要求:将数组中的元素向右移动k个位置。
class Solution:
def rotate(self, nums: List[int], k: int) -> None:
k %= len(nums)
nums[:] = nums[-k:] + nums[:-k]