File tree 5 files changed +129
-0
lines changed
algorithms/FindFirstAndLastPositionOfElementInSortedArray
5 files changed +129
-0
lines changed Original file line number Diff line number Diff line change @@ -292,6 +292,7 @@ All solutions will be accepted!
292
292
| 48| [ Rotate Image] ( https://leetcode-cn.com/problems/rotate-image/description/ ) | [ java/py/js] ( ./algorithms/RotateImage ) | Medium|
293
293
| 74| [ Search A 2d Matrix] ( https://leetcode-cn.com/problems/search-a-2d-matrix/description/ ) | [ java/py/js] ( ./algorithms/SearchA2dMatrix ) | Medium|
294
294
| 153| [ Find Minimum In Rotated Sorted Array] ( https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/description/ ) | [ java/py/js] ( ./algorithms/FindMinimumInRotatedSortedArray ) | Medium|
295
+ | 34| [ Find First And Last Position Of Element In Sorted Array] ( https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/description/ ) | [ java/py/js] ( ./algorithms/FindFirstAndLastPositionOfElementInSortedArray ) | Medium|
295
296
296
297
# Database
297
298
| #| Title| Solution| Difficulty|
Original file line number Diff line number Diff line change
1
+ # Find First And Last Position Of Element In Sorted Array
2
+ We can solve this problem by binary search
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public int [] searchRange (int [] nums , int target ) {
3
+ int length = nums .length ;
4
+ if (length == 0 )
5
+ return new int []{-1 , -1 };
6
+
7
+ int low = 0 ,
8
+ high = length - 1 ;
9
+
10
+ while (low < high ) {
11
+ int mid = (low + high ) / 2 ;
12
+
13
+ if (nums [mid ] < target )
14
+ low = mid + 1 ;
15
+ else if (nums [mid ] > target )
16
+ high = mid - 1 ;
17
+ else
18
+ high = mid ;
19
+ }
20
+
21
+ if (nums [low ] != target )
22
+ return new int []{-1 , -1 };
23
+
24
+ int temp = low ;
25
+ low = 0 ;
26
+ high = length - 1 ;
27
+
28
+ while (low < high ) {
29
+ int mid = (int ) Math .ceil ((low + high ) / 2.0 );
30
+
31
+ if (nums [mid ] < target )
32
+ low = mid + 1 ;
33
+ else if (nums [mid ] > target )
34
+ high = mid - 1 ;
35
+ else
36
+ low = mid ;
37
+ }
38
+
39
+ return new int []{temp , low };
40
+ }
41
+ }
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {number[] } nums
3
+ * @param {number } target
4
+ * @return {number[] }
5
+ */
6
+ var searchRange = function ( nums , target ) {
7
+ let length = nums . length
8
+ if ( length == 0 )
9
+ return [ - 1 , - 1 ]
10
+
11
+ let low = 0 ,
12
+ high = length - 1
13
+
14
+ while ( low < high ) {
15
+ let mid = parseInt ( ( low + high ) / 2 )
16
+
17
+ if ( nums [ mid ] < target )
18
+ low = mid + 1
19
+ else if ( nums [ mid ] > target )
20
+ high = mid - 1
21
+ else
22
+ high = mid
23
+ }
24
+
25
+ if ( nums [ low ] != target )
26
+ return [ - 1 , - 1 ]
27
+
28
+ let temp = low
29
+ low = 0
30
+ high = length - 1
31
+
32
+ while ( low < high ) {
33
+ let mid = Math . ceil ( ( low + high ) / 2 )
34
+
35
+ if ( nums [ mid ] < target )
36
+ low = mid + 1
37
+ else if ( nums [ mid ] > target )
38
+ high = mid - 1
39
+ else
40
+ low = mid
41
+ }
42
+
43
+ return [ temp , low ]
44
+ } ;
Original file line number Diff line number Diff line change
1
+ class Solution (object ):
2
+ def searchRange (self , nums , target ):
3
+ """
4
+ :type nums: List[int]
5
+ :type target: int
6
+ :rtype: List[int]
7
+ """
8
+ low = 0
9
+ high = len (nums ) - 1
10
+
11
+ if high < 0 :
12
+ return - 1 , - 1
13
+
14
+ while low < high :
15
+ mid = (low + high ) / 2
16
+
17
+ if nums [mid ] < target :
18
+ low = mid + 1
19
+ elif nums [mid ] > target :
20
+ high = mid - 1
21
+ else :
22
+ high = mid
23
+
24
+ if nums [low ] != target :
25
+ return - 1 , - 1
26
+
27
+ i = low
28
+ low = 0
29
+ high = len (nums ) - 1
30
+
31
+ while low < high :
32
+ mid = int (math .ceil ((low + high ) / 2.0 ))
33
+
34
+ if nums [mid ] < target :
35
+ low = mid + 1
36
+ elif nums [mid ] > target :
37
+ high = mid - 1
38
+ else :
39
+ low = mid
40
+
41
+ return i , low
You can’t perform that action at this time.
0 commit comments