算法
I am jack
go ahead
展开
-
C(n,m)=C(n-1,m-1)+C(n-1,m);递归求解
static int C(int n,int m){ if(m==n||m==0){ return 1; }else{ return C(n-1,m-1)%mod+C(n-1,m)%mod; } }原创 2020-09-16 11:15:16 · 2184 阅读 · 0 评论 -
Leedcode第65题——有效数字(史上最详细的解决方案,每一步给您讲的细致入微)
上面我们已经从整体与局部系统的分析了正确的组合方式,接下来我们就需要来开始思考如何实现算法。从上面的分析我们知道了,如果是空串直接返回false,否则我们先把串的前后空格先都删除干净,然后第一个字符必然是:+,-,小数点,数字,如果是其它直接返回false.否则我们要分情况来讨论:接下来我们来进行代码实现:public class Solution { public boolean isNumber(String s) { //剔除空格 s = s.tri..原创 2020-08-15 18:11:32 · 243 阅读 · 0 评论 -
原地Hash法
原地Hash法一.缺失的第一个正数class Solution { public int firstMissingPositive(int[] nums) { for(int i=0;i<nums.length;i++){ //当前i位置的值在数组中有他的位置且当前位置不在正确的位置上 //注意这里为什么是nums[nums[i]-1]!=nums[i]而不是nums[i]-1!=i //我们要防止原创 2020-07-27 12:15:33 · 209 阅读 · 0 评论 -
二分刷题讲解
二分法一.模板y总的两个模板:(下面两个模板只适用于在区间内存在要寻找的值时才适用,当然不存在也可以用只是要对模板修改)模板1//更新方式为l=mid+1,r=midint binarySearch(int l,int r){ int mid; while(l<r) { mid = (l+r)/2;//写成l+(r-l)/2可以防止越界,这在数据量比较大的时候就更加适用 if(check(mid)) r=mid; else l=mid+1; } retu原创 2020-07-16 20:37:30 · 136 阅读 · 0 评论 -
超详细的KMP算法
一文搞懂KMP及其改进算法原创 2020-06-19 08:44:10 · 422 阅读 · 0 评论 -
根据递归方程求时间复杂度
根据递归方程求时间复杂度转载 2020-05-19 09:18:07 · 1023 阅读 · 0 评论 -
求大于等于N的最小smith数
求大于等于N的最小smith数什么是Smith数//c++#include <iostream>#include<algorithm>using namespace std;int isPrime(int N){ for(int i=2;i<=N-1;i++) { if(N%i==0) return 0; } return 1;}int SumDigits(int N){ int原创 2020-05-18 18:25:56 · 2135 阅读 · 0 评论 -
子数组中最大出现次数最多的元素(Leedcode1157)
子数组中最大出现次数最多的元素(Leedcode1157)1.线段树(超时未通过,我不知道哪里有问题)class MajorityChecker { int[] arr; int tree[]; public MajorityChecker(int[] arr) { this.arr = arr; this.tree = new int[...原创 2020-05-02 15:22:24 · 290 阅读 · 0 评论 -
摩尔投票算法
摩尔投票算法import org.junit.Test;public class Test1 { @Test public void Test() { } //摩尔投票算法求众数 // 局限性:(求在数据中出现一般以上的数),这一点在最后要判断 //求众数 //算法步骤: //定义两个变量temp,count=0,...原创 2020-05-02 14:34:13 · 139 阅读 · 0 评论 -
Manacher算法
Manacher算法一种求回文子串的方法,时间复杂度与空间复杂度为o(N)import org.junit.Test;public class Math { @Test public void Test() { System.out.println(Manacher("s")); System.out.println("123".sub...原创 2020-04-27 22:03:12 · 100 阅读 · 0 评论 -
回文串大佬的题解
回文串原创 2020-04-27 11:40:56 · 103 阅读 · 0 评论 -
Leedcode400-----第N个数字
第N个数字class Solution { public int findNthDigit(int n) { int i=1; int temp=getNumber(i); int bef = 0; while(temp<=n) { //这里是为了防止溢出做的处理 ...原创 2020-04-24 21:02:52 · 111 阅读 · 0 评论 -
埃拉托列尼塞算法(求质数)
埃拉托列尼赛算法算法描述:对于给定的数n;求在2~n之间的质数。算法过程:举例说明,求2~12的质数;第一次:2 3 4 5 6 7 8 9 10 11 12(开始用2除后面的,可以除尽的抹去)第二次:2 3 5 7 9 11 (开始用3除后面的,可以除尽的抹去)第三次: 2 3 5 7 11 ...原创 2020-01-25 15:56:55 · 206 阅读 · 0 评论 -
欧几里得算法(原始形式减法)证明
欧几里得算法(原始形式减法)证明先看算法过程:1、r=m-n (其中m>n)2、循环直到 r=02.1 m=n2.2 n=r2.3 r=m-n3、输出 n我们按这个过程走一遍:m nn m-nm-n 2n-m2n-m 2m-3n2m-3n 5n-3m…am+bn km+tnkm+tn (a-k)m...原创 2020-01-25 17:18:37 · 3126 阅读 · 0 评论 -
扩展欧几里得算法
扩展欧几里得算法扩展欧几里得算法可以先看一下贝祖定理;算法核心是递归#include <iostream>using namespace std;void fun(int a, int b, int* x, int* y);int main(){ int x, y; fun(47, 30,&x, &y); cout << x <<...原创 2020-02-02 01:11:43 · 146 阅读 · 0 评论