122.买卖股票的最佳时机II
由于卖出没有限制条件,所以可以将一段时间的整体收益分割成每天零碎的收益,然后加起来那些高的即可。
func maxProfit(prices []int) int {
sum := 0
for i := 1; i < len(prices);i++{
if prices[i] - prices[i -1] > 0{
sum += prices[i] - prices[i -1]
}
}
return sum
}
55. 跳跃游戏
跳跃首先标记的就应该是当前能跳到的最远距离,然后盘点每次跳能否跳到目的地
func canJump(nums []int) bool {
maxlen := nums[0]
for i := 0; i <= maxlen; i++{
if maxlen < (i + nums[i]){
maxlen = i + nums[i]
}
if maxlen >= (len(nums) - 1){
return true
}
}
return false
}
45.跳跃游戏II
注意几点就是:
1、步数和步伐的初值
2、是最后一步时候判定还是超过最后一步时候判定
func jump(nums []int) int {
if len(nums) == 1{return 0}
step := 0
maxlen := 0
now := 0
for i := 0; i < len(nums); i++{
if maxlen < (i + nums[i]){
maxlen = i + nums[i]
}
if now == i{
step++
now = maxlen
if now >= (len(nums) - 1){
break;
}
}
}
return step
}