From 14a6771b9a7d9e619196b9ec9d0adfbf96b67624 Mon Sep 17 00:00:00 2001 From: JACKYMYPERSON Date: Mon, 1 Sep 2025 20:17:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=96=B0=E9=A2=98=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 动态规划/打家劫舍/main.go | 9 ++++ 动态规划/杨辉三角/main.go | 29 +++++++++++++ 动态规划/爬楼梯/main.go | 21 +++++++++ 贪心算法/买卖股票的最佳时机/main.go | 26 +++++++++++ 贪心算法/跳跃游戏/main.go | 25 +++++++++++ 贪心算法/跳跃游戏II/main.go | 67 +++++++++++++++++++++++++++++ 链表/LRU缓存/main.go | 15 +++++-- 7 files changed, 188 insertions(+), 4 deletions(-) create mode 100644 动态规划/打家劫舍/main.go create mode 100644 动态规划/杨辉三角/main.go create mode 100644 动态规划/爬楼梯/main.go create mode 100644 贪心算法/买卖股票的最佳时机/main.go create mode 100644 贪心算法/跳跃游戏/main.go create mode 100644 贪心算法/跳跃游戏II/main.go diff --git a/动态规划/打家劫舍/main.go b/动态规划/打家劫舍/main.go new file mode 100644 index 0000000..b442d28 --- /dev/null +++ b/动态规划/打家劫舍/main.go @@ -0,0 +1,9 @@ +package main + +func main() { + +} +func rob(nums []int) int { + + return 0 +} diff --git a/动态规划/杨辉三角/main.go b/动态规划/杨辉三角/main.go new file mode 100644 index 0000000..e5272ad --- /dev/null +++ b/动态规划/杨辉三角/main.go @@ -0,0 +1,29 @@ +package main + +func main() { + +} +func generate(numRows int) [][]int { + reslist := make([][]int, 0) + for i := 0; i < numRows; i++ { + tmpnumlist := make([]int, 0) + if i == 0 { + tmpnumlist = append(tmpnumlist, 1) + reslist = append(reslist, tmpnumlist) + continue + } + for j := 0; j < i+1; j++ { + if j-1 < 0 { + tmpnumlist = append(tmpnumlist, reslist[i-1][0]) + continue + + } else if j == len(reslist[i-1]) { + tmpnumlist = append(tmpnumlist, reslist[i-1][j-1]) + continue + } + tmpnumlist = append(tmpnumlist, reslist[i-1][j]+reslist[i-1][j-1]) + } + reslist = append(reslist, tmpnumlist) + } + return reslist +} diff --git a/动态规划/爬楼梯/main.go b/动态规划/爬楼梯/main.go new file mode 100644 index 0000000..e55f9cd --- /dev/null +++ b/动态规划/爬楼梯/main.go @@ -0,0 +1,21 @@ +package main + +func main() { + +} + +func climbStairs(n int) int { + if n == 1 { + return 1 + } + if n == 2 { + return 2 + } + stepn1 := 1 + stepn2 := 2 + for i := 3; i <= n; i++ { + current := stepn1 + stepn2 + stepn1, stepn2 = stepn2, current + } + return stepn2 +} diff --git a/贪心算法/买卖股票的最佳时机/main.go b/贪心算法/买卖股票的最佳时机/main.go new file mode 100644 index 0000000..1276055 --- /dev/null +++ b/贪心算法/买卖股票的最佳时机/main.go @@ -0,0 +1,26 @@ +package main + +func main() { + +} +func maxProfit(prices []int) int { + minnum := 0 + res := 0 + + for i := 0; i < len(prices); i++ { + if i == 0 { + minnum = prices[i] + res = 0 + continue + } + if prices[i] < minnum { + minnum = prices[i] + } + tmpnum := prices[i] - minnum + + if tmpnum > res { + res = tmpnum + } + } + return res +} diff --git a/贪心算法/跳跃游戏/main.go b/贪心算法/跳跃游戏/main.go new file mode 100644 index 0000000..1f1dc05 --- /dev/null +++ b/贪心算法/跳跃游戏/main.go @@ -0,0 +1,25 @@ +package main + +func main() { + +} + +func canJump(nums []int) bool { + maxstep := 0 + for i := 0; i < len(nums); i++ { + if maxstep == 0 { + maxstep = nums[i] + (i + 1) + continue + } + if (i + 1) <= maxstep { + tmp := nums[i] + (i + 1) + if tmp > maxstep { + maxstep = tmp + } + } else { + return false + } + } + + return true +} diff --git a/贪心算法/跳跃游戏II/main.go b/贪心算法/跳跃游戏II/main.go new file mode 100644 index 0000000..ad75103 --- /dev/null +++ b/贪心算法/跳跃游戏II/main.go @@ -0,0 +1,67 @@ +package main + +import "fmt" + +func main() { + fmt.Println(jump([]int{2, 3, 1, 1, 4})) +} + +func jump(nums []int) int { + res := 0 + right := 2 + maxstep := 0 + + for i := 0; i < len(nums); i++ { + if (i+1)+nums[i] > right { + maxstep = (i + 1) + nums[i] + } + if (i + 1) == right { + res++ + right = maxstep + } + if maxstep >= len(nums) { + break + } + + } + return res +} + +//func jump(nums []int) int { +// step := make([]int, len(nums)) +// res := 0 +// for i := 0; i < len(nums); i++ { +// maxstep := 0 +// maxi := 0 +// for j := i + 1; j < i+nums[i]; j++ { +// if j >= len(nums) { +// break +// } +// if j == i+1 { +// maxstep = nums[j] +// maxi = j +// continue +// } +// if nums[j] >= maxstep { +// maxstep = nums[j] +// maxi = j +// } +// } +// step[i] = maxi +// } +// tmp := make([]int, len(nums)) +// copy(tmp, step) +// for len(tmp) > 1 { +// res++ +// num := tmp[0] +// i := 0 +// for i < num { +// tmp = tmp[1:] +// i++ +// } +// //fmt.Println("---", tmp) +// } +// //fmt.Println(step) +// //fmt.Println(res) +// return res +//} diff --git a/链表/LRU缓存/main.go b/链表/LRU缓存/main.go index d2a2007..f70cae1 100644 --- a/链表/LRU缓存/main.go +++ b/链表/LRU缓存/main.go @@ -5,10 +5,17 @@ type ListNode struct { Next *ListNode } +type LRUCache struct { +} + +func Constructor(capacity int) LRUCache { + return LRUCache{} +} + +func (this *LRUCache) Get(key int) int { + return 0 +} + func main() { } -func reverseKGroup(head *ListNode, k int) *ListNode { - - return nil -}