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