![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法学习
Culaccino.k
这个作者很懒,什么都没留下…
展开
-
LEETCODE-DAY-001
LEETCODE-DAY-001一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。方法 1class Solution {public: unordered_map<int,int> mp; int dfs(int n){ if(n==0) return 1; els原创 2021-05-13 23:00:26 · 76 阅读 · 1 评论 -
求余运算规则
取余运算:(x + y) % p = (x % p + y % p) % p假设:x = a * p + b;y = c * p + d;则:x % p = b;y % p = d;则:(x + y) % p = (a * p + b + c * p + d) % p= ((a + c) * p + (b + d)) % p= (b + d) % p= (x % p + y % p) % p原创 2021-05-13 20:53:22 · 1556 阅读 · 0 评论 -
素数
素数素数又称质数。所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被 2~16 的任一整数整除。思路1):因此判断一个整数m是否是素数,只需把 m 被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么 m 就是一个素数。思路2):另外判断方法还可以简化。m 不必被 2 ~ m-1 之间的每一个整数去除,只需被 2 ~ 之间的每一个整数去除就可以了。如果 m 不能被 2 ~ 间任一整数整除,m 必定是素数。例如判别 17 是是否为素数,只需使 17原创 2021-01-11 19:32:31 · 456 阅读 · 0 评论 -
fib()
fib() :递归fib(n)=fib(n-1)+fib(n-2) : {0,1,1,2,3,5,8…}int fib(n) { return (2>n) ? n : fib(n-1)+fib(n-2);}复杂度:T(0)=T(1)=1;T(n)=T(n−1)+T(n−2)+1;T(0)=T(1)=1; T(n)=T(n-1)+T(n-2)+1;T(0)=T(1)=1;T(n)=T(n−1)+T(n−2)+1;令S(n)=[T(n)+1]/2S(n)=[T(n)+1]原创 2020-10-12 16:26:41 · 1302 阅读 · 0 评论 -
排序算法相关复杂度
排序算法相关复杂度 类别 排序方法 时间复杂度 空间复杂度 稳定性 平均情况 最坏情况 辅助存储原创 2020-10-11 15:50:24 · 53 阅读 · 0 评论 -
从数组区间A[lo,hi)中找出最大的两个整数A[x1]和A[x2]
从数组区间A[lo,hi)中找出最大的两个整数A[x1]和A[x2]假设 : A[x1]>=A[x2]方法一:void max2( int A[], int lo, int hi, int &x1, int &x2) //A[x1]>=A[x2] 1<n=hi-lo{ for (x1=lo,int i=lo+1; i<hi; i++ ) //扫描A[lo,hi), 找出A[x1] {原创 2020-10-09 10:37:29 · 140 阅读 · 0 评论 -
算法求解-数组求和
数组求和二分递归算法:分而治之sum(int A[], int lo,int hi) //区间范围,入口形式为sum(A,0,n-1){ if(lo==hi) return A[lo]; int mi=(lo+hi)/2; return sum(A,lo,mi)+sum(A,mi+1,hi);}T(n)=各层递归实列所需时间和=O(1)∗(20+21+22+23+⋯+2(log2n))=O(1)*(2^0+2^1+2^2+2^3+\cdot原创 2020-10-08 20:52:27 · 349 阅读 · 0 评论