Code Tricks

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 对角元素

012
123
456
789
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

问题符合”后进先出“

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值