File tree Expand file tree Collapse file tree 2 files changed +67
-0
lines changed
find-minimum-in-rotated-sorted-array Expand file tree Collapse file tree 2 files changed +67
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * ์ ๋ ฌ๋ ๋ฐฐ์ด์์ ์ต์๊ฐ ์ฐพ๊ธฐ
3
+ * ์๊ณ ๋ฆฌ์ฆ ๋ณต์ก๋
4
+ * - ์๊ฐ ๋ณต์ก๋: O(logn)
5
+ * - ๊ณต๊ฐ ๋ณต์ก๋: O(1)
6
+ * @param nums
7
+ */
8
+ function findMin ( nums : number [ ] ) : number {
9
+ // ํ์ด 1 - sort() ์ฌ์ฉ
10
+ // ์๊ฐ ๋ณต์ก๋: O(nlogn) / ๊ณต๊ฐ ๋ณต์ก๋: O(1)
11
+ // nums.sort((a, b) => a - b)
12
+ // return nums[0]
13
+
14
+ // ํ์ด 2 - ๋ฐฐ์ด์ด ์ ๋ ฌ๋์ด ์์์ ํ์ฉํ ํ์ด
15
+ // ์๊ฐ ๋ณต์ก๋: O(n) / ๊ณต๊ฐ ๋ณต์ก๋: O(1)
16
+ // let min = nums[0];
17
+ // for(let i = 1; i < nums.length; i++) {
18
+ // console.log(nums[i])
19
+ // min = Math.min(nums[i], min)
20
+ // }
21
+ // return min
22
+
23
+ // ์ด๋ถ ํ์๋ฒ ํ์ฉ
24
+ // ์ ๋ฐ์ฉ ์๋ผ์ nums[n-1] > nums[n] ์ ์ง์ ์ ์ฐพ๋๋ค
25
+ let low = 1 ;
26
+ let high = nums . length - 1 ;
27
+ while ( low <= high ) {
28
+ let mid = Math . floor ( ( low + high ) / 2 ) ;
29
+ if ( nums [ mid - 1 ] > nums [ mid ] ) {
30
+ return nums [ mid ] ;
31
+ }
32
+ if ( nums [ 0 ] < nums [ mid ] ) {
33
+ low = mid + 1 ;
34
+ } else {
35
+ high = mid - 1 ;
36
+ }
37
+ }
38
+ return nums [ 0 ]
39
+ }
Original file line number Diff line number Diff line change
1
+ /**
2
+ * Definition for singly-linked list.
3
+ * class ListNode {
4
+ * val: number
5
+ * next: ListNode | null
6
+ * constructor(val?: number, next?: ListNode | null) {
7
+ * this.val = (val===undefined ? 0 : val)
8
+ * this.next = (next===undefined ? null : next)
9
+ * }
10
+ * }
11
+ */
12
+ /**
13
+ * ์ํ๋๋ ๋งํฌ๋ ๋ฆฌ์คํธ ์ฐพ๊ธฐ
14
+ * ์๊ณ ๋ฆฌ์ฆ ๋ณต์ก๋
15
+ * - ์๊ฐ ๋ณต์ก๋: O(n)
16
+ * - ๊ณต๊ฐ ๋ณต์ก๋: O(n)
17
+ * @param head
18
+ */
19
+ function hasCycle ( head : ListNode | null ) : boolean {
20
+ let set = new Set ( ) ;
21
+ while ( head !== null ) {
22
+ // set์ ์ด๋ฏธ ์กด์ฌํ๋์ง ํ์ธ
23
+ if ( set . has ( head ) ) return true
24
+ set . add ( head )
25
+ head = head . next
26
+ }
27
+ return false
28
+ }
You canโt perform that action at this time.
0 commit comments