45. 跳跃游戏 II && 763. 划分字母区间(LeetCode热题100)

45. 跳跃游戏 II - 力扣(LeetCode)

用l,r区间维护当前能跳跃的区间,计算当前区间能跳跃到的最右区间,以此更新r

当r >= len(nums) - 1就可以返回了

go 复制代码
func jump(nums []int) int {
    l, r := 0, 0
    cnt := 0
    for r < len(nums) - 1 {
        max_r := r
        for l <= r {
            max_r = max(max_r, nums[l] + l)
            l++
        }
        r = max_r
        cnt++
    }
    return cnt
}

763. 划分字母区间 - 力扣(LeetCode)

本质是合并区间,记录每个字符最后一次出现位置last

从左往右遍历s,根据last[i]试图扩大l,r区间(初始为0,0),若r == i说明无法扩大区间,维护ans

go 复制代码
func partitionLabels(s string) []int {
    last := [26]int{}
    ans := []int{}
    for i, c := range s {
        last[c - 'a'] = i
    }
    l, r := 0, 0
    for i, c := range s {
        r = max(r, last[c - 'a'])
        if r == i {
            ans = append(ans, r - l + 1)
            l = r + 1
        }
    }
    return ans
}
相关推荐
晨晖21 小时前
顺序查找:c语言
c语言·开发语言·算法
LYFlied1 小时前
【每日算法】LeetCode 64. 最小路径和(多维动态规划)
数据结构·算法·leetcode·动态规划
Salt_07282 小时前
DAY44 简单 CNN
python·深度学习·神经网络·算法·机器学习·计算机视觉·cnn
货拉拉技术2 小时前
AI拍货选车,开启拉货新体验
算法
MobotStone2 小时前
一夜蒸发1000亿美元后,Google用什么夺回AI王座
算法
Wang201220132 小时前
RNN和LSTM对比
人工智能·算法·架构
xueyongfu2 小时前
从Diffusion到VLA pi0(π0)
人工智能·算法·stable diffusion
永远睡不够的入2 小时前
快排(非递归)和归并的实现
数据结构·算法·深度优先
cheems95272 小时前
二叉树深搜算法练习(一)
数据结构·算法
sin_hielo2 小时前
leetcode 3074
数据结构·算法·leetcode