LeetCode_34. 정렬 배열 에서 요소 의 첫 번 째 와 마지막 위 치 를 찾 습 니 다.

4166 단어
네 크 라인 34. 정렬 배열 에서 요소 의 첫 번 째 와 마지막 위 치 를 찾 습 니 다.
  • 제목
  • 문제 풀이 사고방식
  • 제목.
    오름차 순 으로 배 열 된 정수 배열 nums 와 목표 값 target 을 지정 합 니 다.주어진 목표 값 이 배열 의 시작 위치 와 끝 위 치 를 찾 습 니 다.
    당신 의 알고리즘 시간 복잡 도 는 반드시 O (log n) 등급 이 어야 합 니 다.
    배열 에 목표 치가 존재 하지 않 으 면 [- 1, - 1] 을 되 돌려 줍 니 다.
    예시 1:
    입력: nums = [5, 7, 7, 8, 8, 10], target = 8 출력: [3, 4] 예시 2:
    입력: nums = [5, 7, 7, 8, 8, 10], target = 6 출력: [- 1, - 1]
    문제 풀이 의 사고 방향.
    1. 길 이 를 2 시 배열 int [] x = {- 1, - 1} 로 정의 합 니 다.검색 결과 2 를 저장 하고 정렬 된 배열 을 옮 겨 다 니 며 3. 배열 에서 목표 값 target 과 같은 값 을 찾 으 면 xj 를 통 해 배열 nums [i] i 의 위 치 를 저장 하고 j 의 값 을 14 로 변경 합 니 다. 배열 의 후속 값 이 목표 값 target 과 같 으 면 xj 를 통 해 배열 nums [i] 의 위 치 를 저장 합 니 다. 5. 배열 에서 하나의 값 만 목표 값 과 같 으 면 x [0] 의 값 을 x [1] 6 에 부여 합 니 다.결과 집합 되 돌리 기 x
    //java  
    public int[] searchRange(int[] nums, int target) {
    		int[] x = { -1, -1 };
    		for (int i = 0, j = 0; i < nums.length; i++) {//    
    			if (target == nums[i]) {//             target     
    				x[j] = i;//     x[0]  i     ,    ,   x[1]  i     。
    				j = 1;// j    1.
    			}
    		}
    		if (x[0] > x[1]) {//                    x[0]    x[1]
    			x[1] = x[0];
    		}
    		return x;
    	}
    

    좋은 웹페이지 즐겨찾기