We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent ad6f5f1 commit 61efc9aCopy full SHA for 61efc9a
kotlin/0153-find-minimum-in-rotated-sorted-array.kt
@@ -1,19 +1,24 @@
1
class Solution {
2
fun findMin(nums: IntArray): Int {
3
- val n = nums.size
4
- if(n == 1) return nums[0]
5
- var low = 0
6
- var high = n - 1
7
- var min = Int.MIN_VALUE
8
- while(low < high) {
9
- var mid = low + (high - low)/2
10
- if(nums[mid] < nums[high]) {
11
- high = mid
12
- } else {
13
- low = mid + 1
14
- }
15
- min = nums[low]
+ var l = 0
+ var r = nums.lastIndex
+ var res = nums[0]
+
+ while (l <= r) {
+ var mid = l + (r - l) / 2
+ if (nums[l] < nums[r]) {
+ res = minOf(res, nums[l])
+ break
+ }
+ val m = l + (r - l) / 2
+ res = minOf(res, nums[m])
16
+ if (nums[m] >= nums[l])
17
+ l = mid + 1
18
+ else
19
+ r = m - 1
20
}
- return min
21
22
+ return res
23
-}
24
+}
0 commit comments