有效数组判断两位元素相加是否等于目标值-左右碰撞指针
1、左右碰撞指针,类似于二分法查找
1 /** 2 * 查找是否存在目标值 时间复杂度 O(logN) 3 * 有序的数组,查可以这样用 4 * @param array 5 * @param target 6 * @return 7 */ 8 public static boolean findTarget(int[] array, int target) { 9 //数组为null或者为空,直接返回false 10 if (array == null || array.length == 0) { 11 return false; 12 } 13 //既然数组有序,可以采用左右碰撞指针,进行解决 14 int left = 0; 15 int right = array.length - 1; 16 while (left <= right) { 17 if (array[left] + array[right] == target) { 18 //找到了,直接返回true 19 return true; 20 } else if (array[left] + array[right] > target) { 21 right--; 22 } else { 23 left++; 24 } 25 } 26 //未找到,直接返回false 27 return false; 28 }
缘于生活,而归于工作。本人所书,而意于分享。
如有转载,请注明出处!
--活出自己范儿

浙公网安备 33010602011771号