![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试题
cjf068
这个作者很懒,什么都没留下…
展开
-
蛇形数组
[code="java"]package org.jf.alg;/** * 蛇形数组 * * n=3 * 1 2 3 * 8 9 4 * 7 6 5 * 最基本的直观爬行方式实现 * @author junfeng.chen * */public class SnakeArray { private int array[][]...2012-02-10 21:54:28 · 112 阅读 · 0 评论 -
设计包含max函数的栈
[code="java"]package org.jf.alg;/** * * 算法描述:一个栈stack,具有push和pop操作,其时间复杂度皆为O(1)。设计算法max操作,求栈中的最大值,该操作的时间复杂度也要求为O(1)。可以修改栈的存储方式,push,pop的操作,但是要保证O(1)的时间复杂度,空间时间复杂度无要求。链表存储, 当然数...2012-02-11 11:33:40 · 227 阅读 · 0 评论 -
求最小的k个数问题
查找最小的k个元素题目:输入n个整数,输出其中最小的k个。例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。我的思路:利用二叉堆,构建一个容量为k的定长最小二叉堆,遍历数组,逐个将元素add进堆,完毕返回堆中所有元素即为最小的k个元素[code="java"]package org.jf.alg;/** * 定长小根堆...2012-02-11 14:59:23 · 272 阅读 · 0 评论 -
求最大子数组之和
求最大子数组之和的线性解法:本算法受编程珠玑中提示而得[code="java"]/** * 线性时间复杂度求最大和子数组 * @param a 源数组 * @return 结果数组 长度为3的数组 分别为元素起始位置 结束位置 总和 */ public static int[] getMaxSumSubArray(int a[]) { int begi...2012-04-06 22:51:50 · 134 阅读 · 0 评论 -
判断数组中是否存在两个元素之和等于给定数值
已知int数组a按升序排列,要求用线性时间复杂的算法,判断是否存在一个数n等于数组中某两个元素之和。线性算法:取两个数组下标,一个为起始下标,一个为末尾下标,分别即为low和high(以下代码假设数组尚未排序)[code="java"]/** * 判断是否存在两个元素之和与给定数相等 * @param a * @param n * @return */...2012-04-06 22:58:11 · 1206 阅读 · 0 评论