diff --git a/jump-game/tedkimdev.rs b/jump-game/tedkimdev.rs new file mode 100644 index 0000000000..0274c30d98 --- /dev/null +++ b/jump-game/tedkimdev.rs @@ -0,0 +1,14 @@ +// TC: O(n) +// SC: O(1) +impl Solution { + pub fn can_jump(nums: Vec) -> bool { + let mut last = nums.len() as i32 - 1; + + for i in (0..nums.len() as i32 - 1).rev() { + if i + nums[i as usize] >= last { + last = i; + } + } + last == 0 + } +} diff --git a/search-in-rotated-sorted-array/tedkimdev.go b/search-in-rotated-sorted-array/tedkimdev.go new file mode 100644 index 0000000000..671c2d1807 --- /dev/null +++ b/search-in-rotated-sorted-array/tedkimdev.go @@ -0,0 +1,29 @@ +// TC: O(log n) +// SC: O(1) +func search(nums []int, target int) int { + l, r := 0, len(nums)-1 + + for l <= r { + m := (l + r) / 2 + if nums[m] == target { + return m + } + + // left half is sorted + if nums[l] <= nums[m] { + if target >= nums[l] && target < nums[m] { + r = m - 1 + } else { + l = m + 1 + } + } else { + if target > nums[m] && target <= nums[r] { + l = m + 1 + } else { + r = m - 1 + } + } + } + + return -1 +}