这里写目录标题
Condition
边界
排序过的list
- Input不为None
- Input > list[0] 以及 Input < list[-1]
if not nums or target < nums[0] or target > nums[-1]:
return[-1, -1]
Stack
对Stack操作
在操作Stack前,一定要判断stack不为空
while mono_stack:
...
Number
等效Java里Max/Min的式子
themax = float('inf')
themin = float('-inf')
themax = sys.maxsize
themin = sys.minsize
IEEE 754 floating point numbers can represent positive or negative infinity, and NaN (not a number)
x 同时是3和5的倍数
代码保证返回boolean
not (i % 15)
- 0为False,1为True
not 0
就是not false,即最终为True- 公式: not (需要符合**整除%**的判断条件)
Calculation
中间数
常用于二分法的代码
mid = (left + right)>>1
#或者
mid = left + (right - left) // 2
Sparse matrix multiplication
https://stackoverflow.com/questions/13272453/multiplying-numpy-scipy-sparse-and-dense-matrices-efficiently
Matrix 对角元素
0 | 1 | 2 |
---|---|---|
1 | 2 | 3 |
4 | 5 | 6 |
7 | 8 | 9 |
matrix = [[1,2,3],[4,5,6],[7,8,9]]
1的 右下 对角元素为5
matrix[0][0] = 1
matrix[1][1] = 5
2的 右下 对角元素为6
matrix[0][1] = 2
matrix[1][2] = 6
因为是对角线,那么对应元素一定不在同一行。matrix 第一个 index “-1” 或 “+1”。
因为是对角线,那么对应元素也不会在正上方或正下方。matrix 第二个 index “-1” 或 “+1”。
Initializing
类似JAVA int[] arr = new int[10]
x = [0] * 10
Type Hint
from typing import List
def method(myvars: List[int]) -> int:
...
多了type hint,但是却不能保证type safe,错误的type输入/输出 不会有exception。
类似Java, 其中的type需要引用包裹“typing”。
from typing import List
def method(myvars=[2,1,5,6,2,3]) -> int:
...
Loop
倒序
python的range 是 [start,end)
语法:range(start, end, step)
n = 5
for i in range(n - 1, -1, -1):
print(i)
数据结构
Stack
Deque
问题符合”后进先出“