diff --git a/Week_04/id_40/LeetCode_169_040.go b/Week_04/id_40/LeetCode_169_040.go new file mode 100644 index 00000000..83c0f3de --- /dev/null +++ b/Week_04/id_40/LeetCode_169_040.go @@ -0,0 +1,49 @@ +package main + +import ( + "fmt" + "sort" +) + +// 快速排序 +func qsort(arr []int) []int { + if len(arr) < 2 { + return arr + } else { + pivot := arr[0] + var less []int + var greater []int + for _, value := range arr[1:] { + if value <= pivot { + less = append(less, value) + } else { + greater = append(greater, value) + } + } + var result []int + result = append(result, qsort(less)...) + result = append(result, pivot) + result = append(result, qsort(greater)...) + return result + } +} + +//给数组排个序,因为众数数目大于全部数字数目的一半,直接返回中位数就行 +func majorityElement(nums []int) int { + //quick_sort(nums, 0, len(nums)-1) + //nums = qsort(nums) + sort.Ints(nums) + return nums[len(nums)/2] +} + +func main() { + test := []int{5, 3, 2, 4, 1, 6, 7} + quick_sort(test, 0, len(test)-1) + fmt.Println(majorityElement(test), "======") + test = []int{3, 3, 2} + quick_sort(test, 0, len(test)-1) + fmt.Println(test[len(test)/2], "======") + test = []int{2, 2, 1, 1, 1, 2, 2} + quick_sort(test, 0, len(test)-1) + fmt.Println(majorityElement(test), "======") +} diff --git a/Week_04/id_40/LeetCode_455_040.go b/Week_04/id_40/LeetCode_455_040.go new file mode 100644 index 00000000..658325b6 --- /dev/null +++ b/Week_04/id_40/LeetCode_455_040.go @@ -0,0 +1,28 @@ +package main + +import ( + "fmt" + "sort" +) + +func findContentChildren(g []int, s []int) int { + sort.Ints(g) + sort.Ints(s) + child := 0 + cookie := 0 + for child < len(g) && cookie < len(s) { + if g[child] <= s[cookie] { + child++ + } + cookie++ + } + return child +} +func main() { + child := []int{1, 2, 3} + cookie := []int{1, 1} + fmt.Println(findContentChildren(child, cookie), "______") + child = []int{1, 2} + cookie = []int{1, 2, 3} + fmt.Println(findContentChildren(child, cookie), "______") +}