数据结构与算法
taishanJDatNEUQ
这个作者很懒,什么都没留下…
展开
-
数组_01
1、给定一个整型数组,是否能找出其中的两个数为某个指定的值?假定数组无序,且元素各不相同,但不允许额外的存储空间。 思路:1、将数组排序 2、首尾元素加指针,计算两数之和,大于target尾指针左移一位,小于target头指针右移一位,直到和等于target为止。 时间复杂度为O(nlogn) private boolean hasSum(int[] A, int target){原创 2016-07-17 15:20:32 · 234 阅读 · 0 评论 -
数组_02 数组旋转
返回一维数组向右旋转k个位置的结果。例如:数组{1,2,3,4,5} k=2时,返回数组{4,5,1,2,3} 思路:三次反转数组:第一次反转整个数组{1,2,3,4,5}——>{5,4,3,2,1} 第二次反转数组的前k个数{5,4,3,2,1}------>{4,5,3,2,1} 第三次反转数组剩下的数{4,5,3,2,1}------>{4,5,1,2,3},即为最终结果。原创 2016-07-17 19:19:23 · 220 阅读 · 0 评论