File tree Expand file tree Collapse file tree 1 file changed +44
-0
lines changed
find-minimum-in-rotated-sorted-array Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * Source: https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/
3+ * ํ์ด๋ฐฉ๋ฒ: ์ด์ง ํ์์ ์ด์ฉํ์ฌ ์ต์๊ฐ์ ์ฐพ์
4+ *
5+ * ์๊ฐ๋ณต์ก๋: O(log n)
6+ * ๊ณต๊ฐ๋ณต์ก๋: O(1)
7+ */
8+
9+ function findMin ( nums : number [ ] ) : number {
10+ // ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ 1์ธ ๊ฒฝ์ฐ
11+ if ( nums . length === 1 ) return nums [ 0 ] ;
12+
13+ let left : number = 0 ;
14+ let right : number = nums . length - 1 ;
15+
16+ // ์ด๋ฏธ ์ ๋ ฌ๋ ๊ฒฝ์ฐ
17+ if ( nums [ right ] > nums [ 0 ] ) {
18+ return nums [ 0 ] ;
19+ }
20+
21+ // ์ด์ง ํ์
22+ while ( left <= right ) {
23+ const mid : number = Math . floor ( ( left + right ) / 2 ) ;
24+
25+ // ์ต์๊ฐ์ ์ฐพ๋ ์กฐ๊ฑด๋ค
26+ if ( nums [ mid ] > nums [ mid + 1 ] ) {
27+ return nums [ mid + 1 ] ;
28+ }
29+ if ( nums [ mid - 1 ] > nums [ mid ] ) {
30+ return nums [ mid ] ;
31+ }
32+
33+ // ํ์ ๋ฒ์ ์กฐ์
34+ if ( nums [ mid ] > nums [ 0 ] ) {
35+ // ์ต์๊ฐ์ ์ค๊ฐ์ ์ดํ์ ์์
36+ left = mid + 1 ;
37+ } else {
38+ // ์ต์๊ฐ์ ์ค๊ฐ์ ์ด์ ์ ์์
39+ right = mid - 1 ;
40+ }
41+ }
42+
43+ return nums [ 0 ] ; // ๊ธฐ๋ณธ๊ฐ ๋ฐํ
44+ }
You canโt perform that action at this time.
0 commit comments