算法
achilles偏要执著
这个作者很懒,什么都没留下…
展开
-
基本排序算法
二分查找public class BinarySearch { public int binarySearch(int[] a,int result) { int len=a.length; int left=0; int right=len-1; int mid; while (left<=right)原创 2016-04-25 10:58:20 · 301 阅读 · 0 评论 -
字符相关算法
字符串全组合 使用位图0代表该字符不出现,1代表该字符出现public void Combinatin(char[] a) { int len=a.length; int n=0; if(len<32) { n=1<<len; } for(int i=0;i<n;i+原创 2016-04-28 21:40:48 · 283 阅读 · 0 评论 -
字符相关算法(二)
将字符串中所有的*移动到左边 1.使用冒泡排序的方式,冒泡是稳定的,可以保证字符的顺序public void removeLeftAndRight(char[] a) { for(int i=0;i<a.length;i++) { for (int j=a.length-1;j>i;j--) {原创 2016-04-29 16:10:02 · 259 阅读 · 0 评论 -
算法(四)
顺时针旋转矩阵 [[1,2,3],[4,5,6],[7,8,9]],3 返回:[[7,4,1],[8,5,2],[9,6,3]] for i 0->n-1(代表列) for j n-1->0(代表行) a[i][n-j-1]=mat[j][i];public int[][] rotateMatrix(int[][] mat, int n) { /原创 2016-04-30 16:30:12 · 301 阅读 · 0 评论 -
算法(五)
利用递归来实现栈的倒序//这个i定义在函数外面,防止每次递归调用将i的值初始化为0int i = 0; public int[] reverseStackRecursively(int[] stack, int top) { // write code here if(top>0) { int a = stack[top原创 2016-05-01 15:14:47 · 342 阅读 · 0 评论 -
算法(3)
压缩字符串比如fffff压缩成5f 预判断下一个字符是否与前一个相等,如果相等则进行计数,不等则直接放到新的数组中,注意判断计数值是否大于1来判断是否字符重复。还要记得将计数器的值还原public String compressChar(char[] a){ if(a==null||a.length==1) { return a.toString();原创 2016-04-29 21:40:10 · 243 阅读 · 0 评论