一句话知识点
- 检查数字是否在哈希集(如HashSet)中需要 O(1) 的时间,而对于其他数据结构,则需要 O(n) 的时间
- python divmod() 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)
>>divmod(7, 2) (3, 1)
- python 数组的 insert 方法可以指定位置插入数据,且元数据后移一位,在java中 listArray.add 同样的功能
- python 循环 range(start, stop[, step])
- python 倒叙 a[::-1]
细节知识点
左右移动运算符
<< : 左移运算符,num << 1,相当于num乘以2
>> : 右移运算符,num >> 1,相当于num除以2
>>> : 无符号右移运算符,num >>> 1,相当于num除以2,忽略符号位,空位都以0补齐
python
tertools.permutations(list)这个库。。自动返回列表的全排列啊
循环
range(start, stop[, step])
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
小根堆
Queue<Integer> pq = new PriorityQueue<>((v1, v2) -> v2 - v1);
zip()
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
divmod()
Python divmod() 函数接收两个数字类型(非复数)参数,返回一个包含商和余数的元组(a // b, a % b)。
最大数 最小数
float("inf") 最大浮点数 对应 Integer.MAX_VALUE
float("-inf") 最小浮点数 对应 Integer.MIN_VALUE
队列 堆
stack 栈是Vector的一个子类,它实现了一个标准的 后进先出 的栈。
queue 先进先出
PriorityQueue 优先队列 (最大的先出)
给二维数组排序
- java 使用Arrays对二维数组个性化排序
- Arrays.sort(people, Comparator.comparingInt(o -> o[0])); 按照index0 排序
- Arrays.sort(people, Comparator.comparingInt(o -> o[1])); 按照index1 排序
- Arrays.copyOf() 用法
StringBuffer
StringBuffer.reverse() 参数反转
collections.defaultdict(int)
tree_dict = collections.defaultdict(int) 生成默认的字典 相当于 java中的 Map.getOrDefault(key,0)
通过 tree_dict.items() 遍历出字典中的key 和 value
python中取摸 和需要注意 和java不一样
python 中 -1%10 = 9 , -1//10=-1
java 中 -1%10 = 1 , -1//10=0
判断是否为数字
Character.isDigit(char ch)
python 判断数组中元素是否相等
len(set(nums)) == 1
python 两个数组的交集
set(strs) & set(strs)
PREVIOUS开发技巧
NEXT按位与、或、异或等运算方法