![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Algorithm
潭影空人心
千山鸟飞绝,万径人踪灭。
孤舟蓑笠翁,独钓寒江雪。
展开
-
排列组合的几种实现
1.排列 代码如下: public static long permutation(int n, int m) { long res = 1l; for(; m > 0; m --) { res *= n; n --; } return res; } 2.组合 并且规定:0!= 1。 C(3,0) = 1。 2.1通过排列的方式求组合 代码如下: public static long comb(int n, int m)..原创 2021-08-16 14:50:28 · 438 阅读 · 0 评论 -
求解数组中的第k个最大元素
1.插入法 整体思路如下:建立一个数组长度为k的数组orderArray,把原数组array中最左侧的k个元素放入orderArray,对orderArray排序,接着从k开始遍历原数组array,与orderArray的最后一个元素比较,即orderArray[k-1],如果比orderArray[k-1]大,说明应插入到orderArray中。接着拿这个比orderArray[k-1]大的元素和orderArray中的元素一一比较,确定插入位置,最后将元素插入。 代码如下: /**原创 2021-07-20 14:34:20 · 221 阅读 · 0 评论 -
字符串比较算法
BF算法 /** * BF(Brute Force)算法 * 主串长度为 m,子串长度为 n,算法的复杂度为 O(m*n) * @param parent * @param sub * @return */ public static boolean match(String parent, String sub) { for(int i = 0; i < parent.length(); i ++) {原创 2020-11-09 23:48:13 · 1833 阅读 · 0 评论 -
大整数相加
题目: 给出两个很大的整数,求出两个整数相加的和。 方式1: 思路: 第1步:创建两个整型数组,数组长度是较大整数的位数加1,把每一个整数倒序存储到数组中,整数的个位存储到数组下标为0的位置,最高位存于数组的尾部。 第2步:创建结果数组,结果数组的长度同样是较大整数的位数+1,加1的目的为进位做准备。 第3步:遍历两个数组,从左到右按照对应下标把元素两两相加,并处理进位。 第4步:把结果数组逆序,去掉首位的0,即为最终的结果。 public static String bigNumberS原创 2020-07-21 23:02:33 · 160 阅读 · 0 评论