内功没有练过,那就直接练外功吧!
GCM: 辗转相除直到0, 所有除数相乘。
LCD = (a*b)/GCM
1. 素数统计(埃筛法),BF判断是否为素数,只需要到n**0.5 是否整除即可。埃式筛选:利用合数的理论, 先假设所有的数都是素数,0,1 不是素数,j是素数,那么for j in range(i**2,n+1,i):
2.删除有序数组中的重复项, 同向双指针,
i,j =0,1
for j in range(1,n): if nums[j] != nums[i] : i++ , nums[i] = nums[j]
3. 找中心下标,左边的=右边的; 左右两次遍历,或者一次sum,从左开始遍历
4. 找平方根,二分查找, 或者牛顿迭代
求n的算术平方根 , ret = newton(n,n)
def sqrt(i,n):
ret= ((i+n/i)/2)
if ret != n
return sqrt(ret,n)
else:
return ret
5. 两数之和, 无序用hash表;有序用双指针,二分,暴力
6. 三个数乘积最大! 线性扫描找出 最大的三个正数, 最小的两个负数, 这是一道数学题。
7. fibnacci, 递归O2**n 二叉树节点数量;带存储的递归On ; 双指针遍历 On
8. 小猪试毒。 (1+次数)^n >= 瓶数 求n
9. LIS . DP n**2 或者二分 nlgn贪心
10. 线段树?
196

被折叠的 条评论
为什么被折叠?



