
算法代码
开始即是结束
大三学生
展开
-
最长递增子序列长度(二分加贪心)
感觉这种方法比dp好,所以记录一下, 主要的方法: public static int lis(char a[]) { char b[]=new char[a.length]; //非储存最长递增子序列,但其长度为最长子序列长度 b[0]=a[0]; int o=0; //贪心 for(int i=1;i<a.length;i++) { if(a[i]>b[o]) { b[++o]=a[i]; }else { //用二分法找前原创 2021-12-02 18:20:17 · 131 阅读 · 0 评论 -
归并排序-JAVA实现
听说这种方法比较牛逼,所以去查了一下原理,然后自己写的代码:先用到一个方法将需要排序的数组进行分割,再有序合并,如果分割的部分有序,合并时会很简单,所以再对分割的部分用同样的方法,为了易于阅读,将边合并边排序的方法分开写 ...原创 2021-12-02 18:11:57 · 209 阅读 · 0 评论 -
JAVA全排序,字符串所有可能排序情况
用了递归的方法 package 全排序; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main { //保存所有可能的排序情况 static List<String> list=new ArrayList<>(); //判断第i个位置的字符是否被使用,默认是false static boolean f[]; //保存输入的字符串原创 2021-11-30 18:05:02 · 334 阅读 · 0 评论 -
简明的最小公倍数与最大公约数
通过欧几里得算法求最大公约数,再通过最大公约数求最大公倍数 求最大公约数: public static int gcd(int a,int b) { return b==0? a : gcd(b, a%b); } 求最小共倍数 a*b/gcd(a, b) 是不是很简单原创 2021-11-30 17:34:26 · 109 阅读 · 0 评论