File tree Expand file tree Collapse file tree 1 file changed +38
-0
lines changed
find-minimum-in-rotated-sorted-array Expand file tree Collapse file tree 1 file changed +38
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * κΈΈμ΄κ° nμΈ μ€λ¦μ°¨μμΌλ‘ μ λ ¬λ μ«μ λ°°μ΄μ΄ 1 ~ nλ² νμ νλ€. νμ λ λ°°μ΄μμ κ°μ₯ μμ μλ₯Ό μ°Ύμμ λ°ννμμ€.
3
+ */
4
+ class Solution {
5
+
6
+ // μ΄μ§ νμ: μκ°λ³΅μ‘λ: O(log n)
7
+ public int findMin (int [] nums ) {
8
+ int left = 0 ;
9
+ int right = nums .length - 1 ;
10
+ while (left < right ) {
11
+ int mid = (left + right ) / 2 ;
12
+ if (nums [mid ] > nums [right ]) {
13
+ left = mid + 1 ;
14
+ } else {
15
+ right = mid ;
16
+ }
17
+ }
18
+ return nums [left ];
19
+ }
20
+
21
+
22
+ // 1μ°¨λ λ¨μνκ² μλ€ λ°°μ΄ μμ λΉκ΅λ‘ νμ΄λ΄: O(n^2)
23
+ // Submissionμ λμμ§λ§ μκ° λ³΅μ‘λ κΈ°μ€μ λͺ» λ§μΆ κ² κ°μμ μ΄μ§ νμμΌλ‘ μ¬νμ΄ μ§ν
24
+ // public int findMin(int[] nums) {
25
+ // int rotate = 0;
26
+ // for (int i = 0; i < nums.length - 1; i++) {
27
+ // int idx = (i + rotate) < nums.length ? (i + rotate) : (i + rotate) - nums.length;
28
+ // int nextIdx = idx + 1 < nums.length ? idx + 1 : nums.length - (idx + 1);
29
+ // if (nums[idx] > nums[nextIdx]) {
30
+ // rotate++;
31
+ // i = -1;
32
+ // }
33
+ // }
34
+ // return nums[rotate];
35
+ // }
36
+
37
+ }
38
+
You canβt perform that action at this time.
0 commit comments