mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-10 04:06:51 +08:00
Merge branches 'master' and 'master' of github.com:flames519/leetcode-master
This commit is contained in:
@ -208,6 +208,26 @@ func jump(nums []int) int {
|
|||||||
}
|
}
|
||||||
return dp[len(nums)-1]
|
return dp[len(nums)-1]
|
||||||
}
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Javascript:
|
||||||
|
```Javascript
|
||||||
|
var jump = function(nums) {
|
||||||
|
let curIndex = 0
|
||||||
|
let nextIndex = 0
|
||||||
|
let steps = 0
|
||||||
|
for(let i = 0; i < nums.length - 1; i++) {
|
||||||
|
nextIndex = Math.max(nums[i] + i, nextIndex)
|
||||||
|
if(i === curIndex) {
|
||||||
|
curIndex = nextIndex
|
||||||
|
steps++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return steps
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
/*
|
/*
|
||||||
dp[i]表示从起点到当前位置的最小跳跃次数
|
dp[i]表示从起点到当前位置的最小跳跃次数
|
||||||
dp[i]=min(dp[j]+1,dp[i]) 表示从j位置用一步跳跃到当前位置,这个j位置可能有很多个,却最小一个就可以
|
dp[i]=min(dp[j]+1,dp[i]) 表示从j位置用一步跳跃到当前位置,这个j位置可能有很多个,却最小一个就可以
|
||||||
|
@ -267,6 +267,36 @@ Python:
|
|||||||
|
|
||||||
Go:
|
Go:
|
||||||
|
|
||||||
|
```go
|
||||||
|
func maxSlidingWindow(nums []int, k int) []int {
|
||||||
|
var queue []int
|
||||||
|
var rtn []int
|
||||||
|
|
||||||
|
for f := 0; f < len(nums); f++ {
|
||||||
|
//维持队列递减, 将 k 插入合适的位置, queue中 <=k 的 元素都不可能是窗口中的最大值, 直接弹出
|
||||||
|
for len(queue) > 0 && nums[f] > nums[queue[len(queue)-1]] {
|
||||||
|
queue = queue[:len(queue)-1]
|
||||||
|
}
|
||||||
|
// 等大的后来者也应入队
|
||||||
|
if len(queue) == 0 || nums[f] <= nums[queue[len(queue)-1]] {
|
||||||
|
queue = append(queue, f)
|
||||||
|
}
|
||||||
|
|
||||||
|
if f >= k - 1 {
|
||||||
|
rtn = append(rtn, nums[queue[0]])
|
||||||
|
//弹出离开窗口的队首
|
||||||
|
if f - k + 1 == queue[0] {
|
||||||
|
queue = queue[1:]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return rtn
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
Javascript:
|
Javascript:
|
||||||
```javascript
|
```javascript
|
||||||
var maxSlidingWindow = function (nums, k) {
|
var maxSlidingWindow = function (nums, k) {
|
||||||
|
@ -55,7 +55,7 @@
|
|||||||
|
|
||||||
dp[j]为 容量为j的背包所背的最大价值,那么如何推导dp[j]呢?
|
dp[j]为 容量为j的背包所背的最大价值,那么如何推导dp[j]呢?
|
||||||
|
|
||||||
dp[j]可以通过dp[j - weight[j]]推导出来,dp[j - weight[i]]表示容量为j - weight[i]的背包所背的最大价值。
|
dp[j]可以通过dp[j - weight[i]]推导出来,dp[j - weight[i]]表示容量为j - weight[i]的背包所背的最大价值。
|
||||||
|
|
||||||
dp[j - weight[i]] + value[i] 表示 容量为 j - 物品i重量 的背包 加上 物品i的价值。(也就是容量为j的背包,放入物品i了之后的价值即:dp[j])
|
dp[j - weight[i]] + value[i] 表示 容量为 j - 物品i重量 的背包 加上 物品i的价值。(也就是容量为j的背包,放入物品i了之后的价值即:dp[j])
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user