Skip to content

Commit b6f9956

Browse files
authored
Merge pull request #522 from jaejeong1/main
2 parents 061d42a + 6552aef commit b6f9956

File tree

2 files changed

+69
-0
lines changed

2 files changed

+69
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
class Solution {
2+
public int findMin(int[] nums) {
3+
// TC: O(log N)
4+
// SC: O(1)
5+
var left = 1; // N๋ฒˆ ํšŒ์ „ํ•ด ์ด๋ฏธ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์ผ ๊ฒฝ์šฐ 0์œผ๋กœ ์‹œ์ž‘ํ•˜๋ฉด ๋ฃจํ”„๊ฐ€ ์•ˆ๋๋‚จ. 1๋กœ ์‹œ์ž‘
6+
var right = nums.length-1;
7+
8+
while (left <= right) { // left๊ฐ€ right๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์„๋•Œ๊นŒ์ง€
9+
var mid = (left + right) / 2;
10+
if (nums[mid - 1] > nums[mid]) { // mid - 1 ์š”์†Œ๊ฐ€ mid ๋ณด๋‹ค ๊ฐ’์ด ํฌ๋ฉด ๋ณ€๊ณก์ ์„ ์ฐพ์€ ๊ฒƒ. ๊ทธ๋Œ€๋กœ ๋ฐ˜ํ™˜
11+
return nums[mid];
12+
}
13+
14+
if (nums[mid] > nums[0]) { // ๋ณ€๊ณก์ ์ด ์•„๋‹ˆ๊ณ , 0๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ณด๋‹ค mid ์š”์†Œ๊ฐ€ ๊ฐ’์ด ํฌ๋ฉด ์ •๋ ฌ์ด ์ž˜ ๋˜์–ด ์žˆ๋Š”๊ฒƒ. ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํƒ์ƒ‰
15+
left = mid + 1;
16+
} else {
17+
right = mid - 1;
18+
}
19+
}
20+
21+
return nums[0]; // N๋ฒˆ ํšŒ์ „ํ•ด ์ด๋ฏธ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์ผ ๊ฒฝ์šฐ 0๋ฒˆ์งธ ์ธ๋ฑ์Šค ์š”์†Œ ๋ฐ˜ํ™˜
22+
}
23+
}

โ€Žlinked-list-cycle/jaejeong1.java

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
//Definition for singly-linked list.
2+
class ListNode {
3+
int val;
4+
ListNode next;
5+
ListNode(int x) {
6+
val = x;
7+
next = null;
8+
}
9+
}
10+
11+
class Solution {
12+
public boolean hasCycle(ListNode head) {
13+
// ํ’€์ด 1: Set์— ๊ฐ์ฒด๋ฅผ ์ง‘์–ด ๋„ฃ๊ณ , ์‚ฌ์ด์ฆˆ๊ฐ€ ์•ˆ๋Š˜์–ด๋‚˜๋ฉด ์‚ฌ์ดํด์ด ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค
14+
// TC: O(N)
15+
// SC: O(N)
16+
// Set<ListNode> set = new HashSet<>();
17+
//
18+
// while(head != null) {
19+
// var before = set.size();
20+
// set.add(head);
21+
// var after = set.size();
22+
// if (before == after) {
23+
// return true;
24+
// }
25+
// head = head.next;
26+
// }
27+
//
28+
// return false;
29+
30+
// ํ’€์ด 2: ๋‘๊ฐœ์˜ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด ์ฒซ๋ฒˆ์งธ ํฌ์ธํ„ฐ๋Š” ํ•˜๋‚˜์”ฉ, ๋‘๋ฒˆ์งธ ํฌ์ธํ„ฐ๋Š” ๋‘๊ฐœ์”ฉ ์ˆœํ™˜ํ•˜๋‹ค ๊ฒน์น˜๋Š” ๋ถ€๋ถ„์ด ์ƒ๊ธฐ๋ฉด ์ˆœํ™˜์ด๋ผ๊ณ  ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค
31+
// TC: O(N)
32+
// SC: O(1)
33+
var slow = head;
34+
var fast = head;
35+
while (fast != null && fast.next != null) {
36+
slow = slow.next;
37+
fast = fast.next.next;
38+
39+
if (slow == fast) {
40+
return true;
41+
}
42+
}
43+
44+
return false;
45+
}
46+
}

0 commit comments

Comments
ย (0)