算法初级——转圈打印矩阵

* 【题目】 给定一个整型矩阵matrix,请按照转圈的方式打印它。 * 例如: 1 2 3 4 * 5 6 7 8 * 9 10 11 12 * 13 14 15 16 * 打印结果为:1,2,3,4,8,12,16,15,14,13,9,5,6,7,11, 10 * 【要求】 额外空间复杂度为O(1)。/* * 转圈打印主要

- 阅读全文 -

算法初级——栈和队列的相互实现

如何仅用队列结构实现栈结构? /* * 队列结构实现栈 * 两个队列,一个主队列,一个辅助队列 * 从压栈开始操作,主队列压栈,弹出时,需要判断主队列是否为空,如果为空,抛出异常,然后判断主队列长度, * 如果主队列长度为一,直接弹出,否则将主队列除最后一个元素外的所有元素全部压入辅助队列,主队列和辅助队列交换, * 然后弹出主队列留的最后一个元素,即为栈所要弹出的元素。查询操作,判断主队列是否为

- 阅读全文 -

算法初级——数组实现栈和队列

用数组结构实现大小固定的队列和栈 数组实现队列 /* * 数组实现队列:定义长度,压入,弹出,查询操作 * 压入时先判断是否满队列,如果不满,队列长度+1,赋值,然后判断游标位置,如果游标等于数组数组最大位置,游标回到队列开头 * 弹出时判断是否空队列,如果不空,队列长度-1,弹出,然后判断游标位置,如果游标位置等于数组最大位置,游标回到开头 */ public class ArrayToQu

- 阅读全文 -

算法初级——返回栈中最小元素

实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返 回栈中最小元素的操作。 【要求】 1.pop、push、getMin操作的时间复杂度都是O(1)。 2.设计的栈类型可以使用现成的栈结构。 /* * 实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返 回栈中最小元素的操作。 * 两种实现方式 * mystack1:如果最小栈为空,压入最小栈,再来的元素判断是否小于当前最小,如果小于当前最

- 阅读全文 -

算法初级——对数器

对数器 对数器是用来测试代码正确性的,我们在找不到合适的oj系统测试自己的代码时,可以自己写一个对数器对代码进行测试。 对数器的概念和使用 0,有一个你想要测的方法a, 1,实现一个绝对正确但是复杂度不好的方法b, 2,实现一个随机样本产生器 3,实现比对的方法 4,把方法a和方法b比对很多次来验证方法a是否正确 5,如果有一个样本使得比对出错,打印样本分析是哪个方法出错 6,当样本数量很多时比对

- 阅读全文 -