码迷,mamicode.com
首页 > 编程语言 > 详细

剑指offer算法思想

时间:2019-03-16 09:32:55      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:col   字符   下标   两个栈   字符串   算法   arraylist   获取   方法   

3. 数组中重复的数字

算法步骤:遍历该数组nums,从第一个数字开始,判断

1)如果nums[i]和下标的值i一样,就跳到下一个数字

2)如果不一样,那么就判断,nums[i]是否等于nums[nums[i]],如果等于,输出该数字nums[下标值],

如果不等于,那么就调整nums[i]和nums[nums[i]]的顺序。继续重复1)和2)

 

4. 二维数组中的查找

算法步骤:

1)获取行数rows和列数cols

2)确定从第一行r和最后一列c开始,即从右上角开始

3)while循环,行数r<=rows-1&&c>=0

4)如果target等于matric[r][c],直接输出答案。如果target大于matric[r][c],行r增加,如果target小于matric[r][c],列减少,c--。

 

5. 替换空格

算法步骤:

1)得到原长度下标p1

2)然后遍历字符串里面的空格,如果是有空格,那么在这个字符串后面加多两个空格,最终是为了得到替代之后的字符长度数量下标p2

3)while(p1>=0&&p2>p1),获取p1下标的值c,并且从右往左遍历完,如果c为空格,那么就往该字符串的P2 指向的位置依次填充 02%,如果不是空格,就直接添加c

 

6. 从尾到头打印链表

算法思路:

1)往栈加数据

2)设置一个集合Arraylist

3)出栈,并且把数据加到该集合中

 

9. 用两个栈实现队列

算法思路:

1)设立两个栈,一个负责传入in,一个负责出栈out

2)入栈方法,就是使用in添加数据

3)出栈方法:

①如果out为空,那么我们就要判断in是否为空,如果不为空,那么我们就取出in的数据,传入out栈

②如果经过上述处理,out还为空,那么就输出queue为空

③return out.pop()

 

剑指offer算法思想

标签:col   字符   下标   两个栈   字符串   算法   arraylist   获取   方法   

原文地址:https://www.cnblogs.com/lpd1/p/10540516.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!