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