Java实现剑指offer
sakurahzy
这个作者很懒,什么都没留下…
展开
-
1.数组:二维数组的查找
https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e?tpId=13&tqId=11154&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking在一个二维数组中(...原创 2019-07-25 20:56:03 · 107 阅读 · 0 评论 -
2:数组:旋转数组的最小的元素
https://www.nowcoder.com/practice/9f3231a991af4f55b95579b44b7a01ba?tpId=13&tqId=11159&tPage=1&rp=1&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-ranking...原创 2019-07-25 20:58:04 · 112 阅读 · 0 评论 -
3:数组:调整数组顺序使奇数位于偶数前面
https://www.nowcoder.com/practice/beb5aa231adc45b2a5dcc5b62c93f593?tpId=13&tqId=11166&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking输入一个整数数组,...原创 2019-07-25 21:00:27 · 227 阅读 · 0 评论 -
4:数组:顺时针打印数组
思路:首先判断循环退出的条件: 5x5 矩阵 [2][2] 6*6 [2][2] 只要col> 2*k && row> 2*k[K][K]最后一次打印的起始位置然后循环打印数组:上面一行:没有限制条件右面一列:只有中止行数>起始行数下面一行:中止行数>起始行数 && 中止列数>起始列数 至少两行两列...原创 2019-07-26 10:09:11 · 157 阅读 · 0 评论 -
5:数组:数组中有一个数字出现的次数超过数组长度的一半-Java
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。思路:hashmap保存元素以及出现的次数;遍历map找到出现次数超过一半的元素;时间o(n) 空间 o(n)public int MoreThanHalfNum_So...原创 2019-07-26 11:07:18 · 406 阅读 · 0 评论 -
6:数组:找到数组元素的最小的k个值
思路:采用快速排序。然后求出前k个元素;时间o(nlogn)public class Solution { public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) { ArrayList<Integer> res=new ArrayLi...原创 2019-07-26 11:08:55 · 203 阅读 · 0 评论 -
7:数组:数组最大连续子序列的和
思路:1.先判断边界条件 num==null || num.length==02.连续变量最大和maxsum;中间变量的最大和tempsum3.遍历数组中所有元素,如果tempsum<=0;让tempsum=0;然后加后面的元素;如果tempsum==0;tempsum就清0;值等于下一个元素;先清0再赋值maxsum=max(maxsum,tempsum);注意:ma...原创 2019-07-26 11:09:50 · 220 阅读 · 0 评论