From 218962ffe793db094c4e7081495cea84b13a5781 Mon Sep 17 00:00:00 2001 From: yhkee0404 Date: Tue, 23 Sep 2025 12:57:34 +0900 Subject: [PATCH 1/5] invert binary tree solution --- invert-binary-tree/yhkee0404.rs | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 invert-binary-tree/yhkee0404.rs diff --git a/invert-binary-tree/yhkee0404.rs b/invert-binary-tree/yhkee0404.rs new file mode 100644 index 000000000..bf5098280 --- /dev/null +++ b/invert-binary-tree/yhkee0404.rs @@ -0,0 +1,31 @@ +// Definition for a binary tree node. +// #[derive(Debug, PartialEq, Eq)] +// pub struct TreeNode { +// pub val: i32, +// pub left: Option>>, +// pub right: Option>>, +// } +// +// impl TreeNode { +// #[inline] +// pub fn new(val: i32) -> Self { +// TreeNode { +// val, +// left: None, +// right: None +// } +// } +// } +use std::rc::Rc; +use std::cell::RefCell; +impl Solution { + pub fn invert_tree(root: Option>>) -> Option>> { + if let Some(u) = &root { + let mut u = u.borrow_mut(); + let v = u.left.clone(); + u.left = Self::invert_tree(u.right.clone()); + u.right = Self::invert_tree(v); + } + root + } +} From dc9aebd3d6fec4c1452b32ac46cd61c39ae64f7f Mon Sep 17 00:00:00 2001 From: yhkee0404 Date: Sat, 27 Sep 2025 16:29:21 +0900 Subject: [PATCH 2/5] search in rotated sorted array solution --- .../yhkee0404.scala | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 search-in-rotated-sorted-array/yhkee0404.scala diff --git a/search-in-rotated-sorted-array/yhkee0404.scala b/search-in-rotated-sorted-array/yhkee0404.scala new file mode 100644 index 000000000..7969a2942 --- /dev/null +++ b/search-in-rotated-sorted-array/yhkee0404.scala @@ -0,0 +1,26 @@ +object Solution { + def search(nums: Array[Int], target: Int): Int = { + var l = 0 + var r = nums.length - 1 + while (l != r) { + val mid = r - ((r - l) >> 1) + if (nums(mid) > nums(0)) { + l = mid + } else { + r = mid - 1 + } + } + l = r + 1 + r = l + nums.length + while (l != r) { + val mid = l + ((r - l) >> 1) + if (nums(mid % nums.length) < target) { + l = mid + 1 + } else { + r = mid + } + } + l %= nums.length + if (nums(l) == target) l else -1 + } +} From d277c68f8897816a5dda15b6e1ac372c586aa480 Mon Sep 17 00:00:00 2001 From: yhkee0404 Date: Sat, 27 Sep 2025 21:42:22 +0900 Subject: [PATCH 3/5] course schedule solution --- course-schedule/yhkee0404.swift | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 course-schedule/yhkee0404.swift diff --git a/course-schedule/yhkee0404.swift b/course-schedule/yhkee0404.swift new file mode 100644 index 000000000..37fa0c4de --- /dev/null +++ b/course-schedule/yhkee0404.swift @@ -0,0 +1,32 @@ +class Solution { + func canFinish(_ numCourses: Int, _ prerequisites: [[Int]]) -> Bool { + var adj: [[Int]] = Array(repeating: [], count: numCourses) + for ab in prerequisites { + adj[ab[0]].append(ab[1]) + } + var visited = Array(repeating: 0, count: numCourses) + var stack = Array(0.. Date: Sat, 27 Sep 2025 21:51:03 +0900 Subject: [PATCH 4/5] jump game solution --- jump-game/yhkee0404.dart | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 jump-game/yhkee0404.dart diff --git a/jump-game/yhkee0404.dart b/jump-game/yhkee0404.dart new file mode 100644 index 000000000..7808cbf14 --- /dev/null +++ b/jump-game/yhkee0404.dart @@ -0,0 +1,11 @@ +class Solution { + bool canJump(List nums) { + for (int i = 0, j = 0; j < nums.length - 1; i++) { + if (j < i) { + return false; + } + j = max(i + nums[i], j); + } + return true; + } +} From 69660f2b6a7981577f1b473d131ffd1866998c8c Mon Sep 17 00:00:00 2001 From: yhkee0404 Date: Sat, 27 Sep 2025 23:13:32 +0900 Subject: [PATCH 5/5] merge k sorted lists solution --- merge-k-sorted-lists/yhkee0404.go | 41 +++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 merge-k-sorted-lists/yhkee0404.go diff --git a/merge-k-sorted-lists/yhkee0404.go b/merge-k-sorted-lists/yhkee0404.go new file mode 100644 index 000000000..6a484110f --- /dev/null +++ b/merge-k-sorted-lists/yhkee0404.go @@ -0,0 +1,41 @@ +/** + * Definition for singly-linked list. + * type ListNode struct { + * Val int + * Next *ListNode + * } + */ + +type Heap []*ListNode + +func (pq Heap) Len() int {return len(pq)} +func (pq Heap) Less(i, j int) bool { + return pq[i].Val < pq[j].Val +} +func (pq Heap) Swap(i, j int) {pq[i], pq[j] = pq[j], pq[i]} +func (pq *Heap) Push(x any) {*pq = append(*pq, x.(*ListNode))} +func (pq *Heap) Pop() any { + x := (*pq)[len(*pq) - 1] + *pq = (*pq)[:len(*pq) - 1] + return x +} + +func mergeKLists(lists []*ListNode) *ListNode { + h := Heap{} + for _, l := range lists { + if l != nil { + h = append(h, l) + } + } + heap.Init(&h) + ans := ListNode{} + u := &ans + for len(h) > 0 { // T(n) = S(n) = O(nlogn) + u.Next = heap.Pop(&h).(*ListNode) + u = u.Next + if u.Next != nil { + heap.Push(&h, u.Next) + } + } + return ans.Next +}