算法
小黄鸭yaya
勇闯代码世界的小黄鸭
展开
-
深搜模板
数组尽量开大一点,防止Return 数组越界int search(int t){ if(满足输出条件) { 输出解; } else { for(int i=1;i<=尝试方法数;i++) if(满足进一步搜索条件) { 为进一步搜索所需要...原创 2020-01-21 12:48:08 · 419 阅读 · 0 评论 -
快速幂(求a的b次方 求余运算)
求a的b次方 public static int quickPower(int a, int b){//是求a的b次方 int ans = 1, base = a; //ans为答案,base为a^(2^n) while(b > 0)//b是一个变化的二进制数,如果还没有用完 { if(b%2==1) { ans ...原创 2020-01-20 15:00:26 · 937 阅读 · 0 评论 -
关于排序后原序号问题
一个数组的数,排序后要求其原序号方法一:如果数组总共有小于1000个数所以给每个ti都*1001,在加上当前序号可以保证排序的时候序号不干扰排序又可以方便输出序号(只需mod1001输出序号,/1001 输出值)int num=a[i]%1001; //序号int sum=a[i]/1001; //值样例:https://blog.csdn.net/weixin_446856...原创 2020-01-12 17:10:37 · 1132 阅读 · 0 评论 -
Java中的Sort排序
1.升序排序 直接用Arrays.sort(数组名)javaint[] a= {5,4,3,2,1};//升序排序Arrays.sort(array);//会检查数组个数大于286且连续性好就使用归并排序,若小于47使用插入排序,其余情况使用双轴快速排序System.out.println("升序排序:");for (int i : a) { System.out.p...原创 2020-01-05 14:32:23 · 657 阅读 · 0 评论 -
Java中的swap函数
不能像c语言一样直接交换方法一:运用数组 private static void swap(int[] data,int i, int j) { int temp=data[i]; data[i]=data[j]; data[j]=temp; }原创 2020-01-05 14:14:59 · 692 阅读 · 0 评论 -
退出for循环
//退出循环for(int i=0;i<100;i++){ i=n;}原创 2020-01-01 20:46:55 · 569 阅读 · 0 评论 -
质数判断
public static boolean isPrime(int n) { boolean ret = true; if(1==n) { ret = false; return ret; } if(2==n || 3==n || 5==n || 7==n){ ret = true; return ret; } for(int i = 2;i<...原创 2020-01-01 20:41:54 · 122 阅读 · 0 评论 -
3个3位数包含1~9每个数字
//判断三个数是否包含1~9,从而确定是否没有重复数字 public static boolean pd(String a1,String b1,String c1) { String s=a1+b1+c1; for(char i='1';i<='9';i++) { if(s.contains(String.valueOf(i))==false){ //判断字符串是否包含1...原创 2020-01-01 20:39:27 · 320 阅读 · 0 评论 -
java不指定个数输入
1.格式while(in.hasNext()) { a[i]=in.nextInt(); sum+=a[i]; i++;}2.输入要求(1)一行一个数(2)输入最后一个数后,再回车制造下一行(3)Ctrl+z 才能得到结果(4)编译器能识别,无需担心3.样例洛谷链接:https://www.luogu.com.cn/problemnew...原创 2020-01-01 14:07:47 · 2235 阅读 · 0 评论 -
最小公倍数
1.需要借助 最大公约数 算法//最大公约数int gcd(int x,int y){ return y==0?x:gcd(y,x%y);}//最小公倍数int lcm(int x,int y){ return x*y/gcd(x,y);}原创 2019-12-31 16:15:10 · 149 阅读 · 0 评论 -
最大公约数
1.简短写法(递归)int gcd(int x,int y){ return y==0?x:gcd(y,x%y);}2.详细写法(递归)int gcd(int x,int y){ if(y == 0) return x; return gcd(y,x%y);}3.详细写法(非递归)int gcd(int x,int y){ wh...原创 2019-12-31 16:05:16 · 162 阅读 · 0 评论