- 博客(7)
- 收藏
- 关注
原创 相邻两数最大差值
有一个整形数组A,请设计一个复杂度为O(n)的算法,算出排序后相邻两数的最大差值。给定一个int数组A和A的大小n,请返回最大的差值。保证数组元素多于1个。测试样例:[1,2,5,4,6],5返回:2基于桶排序的思想完成,不考虑两个相同的桶内的差值,只考虑该桶的最小值减去上一个桶的最大值,最大的就是最大值。public class Gap { //重点在O(n)上面
2016-01-11 10:52:30 1527
原创 最短排序子数组
对于一个数组,请设计一个高效算法计算需要排序的最短子数组的长度。给定一个int数组A和数组的大小n,请返回一个二元组,代表所求序列的长度。(原序列位置从0开始标号,若原序列有序,返回0)。保证A中元素均为正整数。测试样例:[1,4,6,5,9,10],6返回:2public class Subsequence { public static int shortestSu
2016-01-11 10:45:15 602
原创 小范围排序
已知一个几乎有序的数组,几乎有序是指,如果把数组排好顺序的话,每个元素移动的距离可以不超过k,并且k相对于数组来说比较小。请选择一个合适的排序算法针对这个数据进行排序。给定一个int数组A,同时给定A的大小n和题意中的k,请返回排序后的数组。测试样例:[2,1,4,3,6,5,8,7,10,9],10,2返回:[1,2,3,4,5,6,7,8,9,10]具体解法:使用堆排序
2016-01-11 10:43:14 255
原创 荷兰国旗-三色查找
有一个只由0,1,2三种元素构成的整数数组,请使用交换、原地排序而不是使用计数进行排序。给定一个只含0,1,2的整数数组A及它的大小,请返回排序后的数组。保证数组大小小于等于500。测试样例:[0,1,1,0,2,2],6返回:[0,0,1,1,2,2]具体解法和三分切向快速排序很像public class ThreeColor { public static in
2016-01-11 10:40:50 347
原创 有序矩阵查找
现在有一个行和列都排好序的矩阵,请设计一个高效算法,快速查找矩阵中是否含有值x。 给定一个int矩阵mat,同时给定矩阵大小nxm及待查找的数x,请返回一个bool值,代表矩阵中是否存在x。所有矩阵中数字及x均为int范围内整数。保证n和m均小于等于1000。 测试样例: [[1,2,3],[4,5,6],[7,8,9]],3,3,10public class Finder
2016-01-11 10:35:45 779
原创 三分切向快速排序
public class QuickSort3way { public static void sort(Comparable[] a){ sort(a,0,a.length-1); } private static void sort(Comparable[] a, int lo, int hi) { if (hi<=lo) return
2016-01-11 10:26:16 698
原创 双栈算术表达式求值算法
import java.util.Scanner;/** * (1+((2+3)*(4*5)))测试 * Created by lizhaoz on 2016/1/8. */public class DijkstraEvalute { public static void main(String[] args) { Stack ops=new Stack();
2016-01-08 14:45:14 1506
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人