File tree Expand file tree Collapse file tree 1 file changed +28
-0
lines changed
find-minimum-in-rotated-sorted-array Expand file tree Collapse file tree 1 file changed +28
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * @link https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/description/
3+ *
4+ * ์ ๊ทผ ๋ฐฉ๋ฒ :
5+ * - O(logn)์ผ๋ก ํ์ด์ผ ํ๋๊น ์ด์ง ํ์ ์ ์ฉ
6+ * - ๋ฐฐ์ด์ start, end ์ธ๋ฑ์ค๋ฅผ ํ์ฉํด์ ์ต์๊ฐ์ด ์๋ ๋ฐฉํฅ์ ํ์
7+ * - nums[mid] > nums[end]์ด๋ฉด, ์ต์๊ฐ์ด ์ค๋ฅธ์ชฝ์ ์์ผ๋๊น start๋ฅผ mid+1๋ก ์ด๋
8+ * - ๋ฐ๋๋ก nums[mid] < nums[end] ์ด๋ฉด, ์ต์๊ฐ์ด ์ผ์ชฝ์ ์์ผ๋๊น end๋ฅผ mid๋ก ์ด๋
9+ *
10+ * ์๊ฐ๋ณต์ก๋ : O(logn)
11+ * - ํ์ ๋ฒ์๋ฅผ ๊ณ์ ์ ๋ฐ์ผ๋ก ์ค์ด๋๊น O(logn)
12+ *
13+ * ๊ณต๊ฐ๋ณต์ก๋ : O(1)
14+ * - ๊ณ ์ ๋ ๋ณ์๋ง ์ฌ์ฉ
15+ */
16+ function findMin ( nums : number [ ] ) : number {
17+ let start = 0 ,
18+ end = nums . length - 1 ;
19+
20+ while ( start < end ) {
21+ let mid = Math . floor ( start + ( end - start ) / 2 ) ;
22+
23+ if ( nums [ mid ] > nums [ end ] ) start = mid + 1 ;
24+ else end = mid ;
25+ }
26+
27+ return nums [ start ] ;
28+ }
You canโt perform that action at this time.
0 commit comments