leetcode:在陣列中查詢元素的第一個和最後一個位置(java雙向指標)
阿新 • • 發佈:2018-12-13
給定一個按照升序排列的整數陣列 nums,和一個目標值 target。找出給定目標值在陣列中的開始位置和結束位置。 你的演算法時間複雜度必須是 O(log n) 級別。 如果陣列中不存在目標值,返回 [-1, -1]。 示例 1: 輸入: nums = [5,7,7,8,8,10], target = 8 輸出: [3,4] */
public class SearchRange { public int[] searchRange(int[] nums, int target) { int left=0; int right=nums.length-1; int[] res={-1,-1}; while (left<=right){ if (nums[left]==target){ res[0]=left; }else left++; if (nums[right]==target){ res[1]=right; }else right--; if (res[0]!=-1&&res[1]!=-1)break; } return res; } public static void main(String[] args) { SearchRange a=new SearchRange(); int[] b={5,7,7,8,8,10}; a.searchRange(b,8); } }