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