剑指offer
文章平均质量分 69
lyyoung123
这个作者很懒,什么都没留下…
展开
-
数组--sum问题
题目一输出有序数组a中,和为S的两个数。如有多个,输出乘积最小的两个。思路:将两个指针分别指向首尾,如果和与指定值相等,则返回;如和大于指定值,则右指针向左移动;如和小于指定值,则左指针向右移动。public ArrayList FindNumbersWithSum(int [] array,int sum) { List list = new ArrayList();原创 2016-08-21 16:17:50 · 682 阅读 · 0 评论 -
数组--数组两个数的差值为指定的值
题目:输出有序数组的中两个元素差值为指定值diff的两个元素。思路:这与输出两个元素的和的值为一定值类似,需要两个指针,不同的是:指针不是一左一右,而是一前一后。如果差值等于diff,则返回;如果差值大于diff,则左指针右移;如果差值小于diff,则右指针右移。public void findDiffNum(int[] a,int diff){ if(a==null||a.原创 2016-08-21 16:33:36 · 3656 阅读 · 2 评论 -
数组--只出现一次的字符 and 第一个缺失的字符
题目一数组中只出现一次的数字思路:使用hashset存放所有数字,如果已经加过(即已经出现过,就移除),然后遍历hashset即可输出数组中只出现一次的数字。//num1,num2分别为长度为1的数组。传出参数//将num1[0],num2[0]设置为返回结果public class Solution { public void FindNumsAppearOnce(int原创 2016-08-21 17:07:45 · 295 阅读 · 0 评论