1.题目给你一个非负整数数组 nums ,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。假设你总是可以到达数组的最后一个位置。 示例1:输入:nums=[2,3,1,1,4]输出:2解释:跳到最后一个位置的最小跳跃数是2。 从下标为0跳到下标为1的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。示例2:输入:nums=[2,3,0,1,4]输出:2 提示:1402.题目分析 这是一道动态规划的题目,思路求解和跳跃游戏1类似,只不过现在题目假设从起点都能到终点,找从起点到终点的最小跳数。 设dp[i]
1.题目给定一个字符串 s,计算 s 的 不同非空子序列 的个数。因为结果可能很大,所以返回答案需要对 10^9+7 取余 。字符串的 子序列 是经由原字符串删除一些(也可能不删除)字符但不改变剩余字符相对位置的一个新字符串。例如,"ace" 是 "abcde" 的一个子序列,但 "aec" 不是。示例1:输入:s="abc"输出:7解释:7个不同的子序列分别是"a","b","c","ab","ac","bc",以及"abc"。示例2:输入:s="aba"输出:6解释:6个不同的子序列分别是"a","b","ab","ba","aa"以及"aba"。示例3:输入:s="aaa"输出:3解释:
1.题目给定一个字符串 s,计算 s 的 不同非空子序列 的个数。因为结果可能很大,所以返回答案需要对 10^9+7 取余 。字符串的 子序列 是经由原字符串删除一些(也可能不删除)字符但不改变剩余字符相对位置的一个新字符串。例如,"ace" 是 "abcde" 的一个子序列,但 "aec" 不是。示例1:输入:s="abc"输出:7解释:7个不同的子序列分别是"a","b","c","ab","ac","bc",以及"abc"。示例2:输入:s="aba"输出:6解释:6个不同的子序列分别是"a","b","ab","ba","aa"以及"aba"。示例3:输入:s="aaa"输出:3解释:
一、题目大意标签:数组https://leetcode.cn/problems/search-a-2d-matrix-ii编写一个高效的算法来搜索 m x n 矩阵matrix中的一个目标值target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例1:输入:matrix=[[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]],target=5输出:true示例2:输入:matrix=[[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,
一、题目大意标签:数组https://leetcode.cn/problems/search-a-2d-matrix-ii编写一个高效的算法来搜索 m x n 矩阵matrix中的一个目标值target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例1:输入:matrix=[[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]],target=5输出:true示例2:输入:matrix=[[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,
一、题目大意标签:贪心https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii给你一个整数数组prices,其中 prices[i]表示某支股票第i天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有一股股票。你也可以先购买,然后在同一天出售。返回你能获得的最大利润 。示例1:输入:prices=[7,1,5,3,6,4]输出:7解释:在第2天(股票价格=1)的时候买入,在第3天(股票价格=5)的时候卖出,这笔交易所能获得利润=5-1=4。 随后,在第4天(股票价格=3)的时候买入,在第5天(股
一、题目大意标签:贪心https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii给你一个整数数组prices,其中 prices[i]表示某支股票第i天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有一股股票。你也可以先购买,然后在同一天出售。返回你能获得的最大利润 。示例1:输入:prices=[7,1,5,3,6,4]输出:7解释:在第2天(股票价格=1)的时候买入,在第3天(股票价格=5)的时候卖出,这笔交易所能获得利润=5-1=4。 随后,在第4天(股票价格=3)的时候买入,在第5天(股
目录1.题目2.解题思路3.数据类型功能函数总结4.java代码1.题目输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。示例1:给定二叉树[3,9,20,null,null,15,7]3/\920/\157返回true。示例2:给定二叉树[1,2,2,3,3,null,null,4,4]1/\22/\33/\44返回 false。限制:0作者:Krahets链接:https://leetcode.cn/leetbook/read/illustration-of-algorithm/9hzffg/来源:力扣(Leet
目录1.题目2.解题思路3.数据类型功能函数总结4.java代码1.题目输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。示例1:给定二叉树[3,9,20,null,null,15,7]3/\920/\157返回true。示例2:给定二叉树[1,2,2,3,3,null,null,4,4]1/\22/\33/\44返回 false。限制:0作者:Krahets链接:https://leetcode.cn/leetbook/read/illustration-of-algorithm/9hzffg/来源:力扣(Leet
欢迎关注个人公众号:爱喝可可牛奶LeetCode算法训练-回溯491.递增子序列46.全排列47.全排列IILeetCode491.递增子序列分析找出并返回所有数组中不同的递增子序列绝对不能先升序绝对不能先升序绝对不能先升序这样会改变原有数组的结构子序列中元素在数组中不一定相邻只要叶子节点,也就是path,一满足条件,直接加入res注意去重used[]数组只针对当前节点的后序节点要在回溯函数中定义画回溯树一看便知代码classSolution{privateLinkedListpath=newLinkedList();privateList>res=newArrayList();publicL