AlgoExpert Practice (Searching, Sorting, Greedy)
Contents
Searching
Search in Sorted Matrix
Unfold:
Shifted Binary Search
Unfold:
Search for Range
Unfold:
func searchRange(nums []int, target int) []int {
start := lowerBound(nums, target)
if start == len(nums) || nums[start] != target{
return []int{-1, -1}
}
end := lowerBound(nums, target+1) - 1
return []int{start, end}
}
func lowerBound(nums []int, target int)int{
left, right := 0, len(nums)-1
for left <= right{
mid := left+(right-left)/2
if nums[mid] < target{
left = mid+1
}else{
right = mid - 1
}
}
return left
}
Index Equals Value
Unfold:
Median of Two Sorted Arrays
Unfold:
Optimal Assembly Line
Unfold:
Sorting
Bubble Sort
Insertion Sort
Selection Sort
Three Number Sort
Unfold:
Quick Sort
Heap Sort
Radix Sort
Unfold:
Merge Sort
Unfold:
Count Inversions
Unfold:
Greedy Algorithms
Optimal Freelancing
Unfold:
Valid Starting City
Unfold: