File tree Expand file tree Collapse file tree 1 file changed +69
-0
lines changed Expand file tree Collapse file tree 1 file changed +69
-0
lines changed Original file line number Diff line number Diff line change
1
+ // same solution but with function
2
+ class Solution {
3
+ fun searchRange (nums : IntArray , target : Int ): IntArray {
4
+ val res = intArrayOf(- 1 ,- 1 )
5
+
6
+ fun binarySearch (getLeft : Boolean ): Int {
7
+ var left = 0
8
+ var right = nums.size- 1
9
+ var pos = - 1
10
+ while (left <= right){
11
+ val mid = (left + right) / 2
12
+ if (target > nums[mid]){
13
+ left = mid + 1
14
+ }else if (target < nums[mid]){
15
+ right = mid - 1
16
+ }else {
17
+ pos = mid
18
+ if (getLeft)
19
+ right = mid - 1
20
+ else
21
+ left = mid + 1
22
+ }
23
+ }
24
+ return pos
25
+ }
26
+
27
+ res[0 ] = binarySearch(true )
28
+ res[1 ] = binarySearch(false )
29
+
30
+ return res
31
+ }
32
+ }
33
+
34
+ class Solution {
35
+ fun searchRange (nums : IntArray , target : Int ): IntArray {
36
+ val res = intArrayOf(- 1 ,- 1 )
37
+ var left = 0
38
+ var right = nums.size- 1
39
+ var pos = - 1
40
+ var mid = - 1
41
+ while (left <= right){
42
+ mid = (left + right) / 2
43
+ if (target > nums[mid]){
44
+ left = mid + 1
45
+ }else if (target < nums[mid]){
46
+ right = mid - 1
47
+ }else {
48
+ pos = mid
49
+ right = mid - 1
50
+ }
51
+ res[0 ] = pos
52
+ }
53
+ left = 0
54
+ right = nums.size- 1
55
+ while (left <= right){
56
+ mid = (left + right) / 2
57
+ if (target > nums[mid]){
58
+ left = mid + 1
59
+ }else if (target < nums[mid]){
60
+ right = mid - 1
61
+ }else {
62
+ pos = mid
63
+ left = mid + 1
64
+ }
65
+ res[1 ] = pos
66
+ }
67
+ return res
68
+ }
69
+ }
You can’t perform that action at this time.
0 commit comments