309. 买卖股票的最佳时机含冷冻期题目描述给定一个整数数组prices,其中第 prices[i] 表示第 i 天的股票价格 。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: prices = [1
714. 买卖股票的最佳时机含手续费题目描述给定一个整数数组 prices,其中 prices[i] 表示第 i 天的股票价格 ;整数 fee 代表了交易股票的手续费用。你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。返回获得利润的最大值。注意:这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。示例
188. 买卖股票的最佳时机 IV题目描述给你一个整数数组 prices 和一个整数 k其中 prices[i]是某支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。也就是说,你最多可以买 k 次,卖 k 次。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入:k = 2, prices = [2,4,1]输出:2解
581. 最短无序连续子数组题目描述给你一个整数数组 nums 你需要找出一个 连续子数组 如果对这个子数组进行升序排序 那么整个数组都会变为升序排序。 请你找出符合题意的 最短 子数组 并输出它的长度。示例 1:输入:nums = [2,6,4,8,10,9,15] 输出:5 解释:你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。 示例 2:输入:nums
456. 132 模式题目描述给你一个整数数组 nums 数组中共有 n 个整数。 132 模式的子序列 由三个整数 nums[i]、nums[j] 和 nums[k] 组成 并同时满足:i < j < k 和 nums[i] < nums[k] < nums[j] 。 如果 nums 中存在 132 模式的子序列 返回 true ;否则,返回 fals
654. 最大二叉树题目描述给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建:创建一个根节点,其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右边 的 子数组后缀上 构建右子树。返回 nums 构建的 最大二叉树 。示例一输入:nums = [3,2,1,6,0,5] 输出:[6,3,5,null,2,0
739. 每日温度题目描述给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer 其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。 如果气温在这之后都不会升高,请在该位置用 0 来代替。示例 1:输入: temperatures = [73,74,75,71,69,72,76,73] 输出: [1,1,4,2,1,1,0,0] 示例 2
769. 最多能完成排序的块题目描述给定一个长度为 n 的整数数组 arr 它表示在 [0, n - 1] 范围内的整数的排列我们将 arr 分割成若干 块 (即分区),并对每个块单独排序。将它们连接起来后,使得连接的结果和按升序排序后的原数组相同。返回数组能分成的最多块数量。示例 1:输入: arr = [4,3,2,1,0] 输出: 1解释:将数组分成2块或者更多块,都无法得到所需的结果。例如
901. 股票价格跨度 题目描述设计一个算法收集某些股票的每日报价,并返回该股票当日价格的 跨度 。当日股票价格的 跨度 被定义为股票价格小于或等于今天价格的最大连续日数(从今天开始往回数,包括今天)。例如,如果未来 7 天股票的价格是 [100,80,60,70,60,75,85]那么股票跨度将是 [1, 1, 1, 2, 1, 4, 6]实现 StockSpanner 类:StockSpann
907. 子数组的最小值之和题目描述给定一个整数数组 找到 min(b) 的总和其中 b 的范围为 arr 的每个(连续)子数组。由于答案可能很大,因此 返回答案模 示例 1:输入:arr = [3,1,2,4] 输出:17解释: 子数组为 [3],[1],[2],[4],[3,1],[1,2],[2,4],[3,1,2],[1,2,4],[3,1,2,4] 最小值为 3,1,2,4,1,1
111. 二叉树的最小深度题目描述给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例1:输入:root = [3,9,20,null,null,15,7] 输出:2示例 2:输入:root = [2,null,3,null,4,null,5,null,6] 输出:5提示:树中节点数的范围在 内题目解析首先考虑题目的数量
752. 打开转盘锁题目描述你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' 每个拨轮可以自由旋转:例如把 '9' 变为 '0','0' 变为 '9' 每次旋转都只能旋转一个拨轮的一位数字。锁的初始数字为 '0000' ,一个代表四个拨轮的数字的字符串。列表 deadends 包含了一组死亡
34. 在排序数组中查找元素的第一个和最后一个位置题目描述给你一个按照非递减顺序排列的整数数组 nums和一个目标值 target请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。示例 1:输入:nums = [5,7,7,8,8,10], target = 8 输出:[3,
题目描述给定两个字符串 s 和 p找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引不考虑答案输出的顺序。异位词 指由相同字母重排列形成的字符串(包括相同的字符串)示例 1:输入: s = "cbaebabacd", p = "abc" 输出: [0,6] 解释: 起始索引等于 0 的子串是 "cba", 它是 "abc" 的异位词。 起始索引等于 6 的子串是 "bac", 它是
之前不太会 C++,在 leet code 上尝试用 C++解决算法问题 这里我想使用 CLion 调试我的 C++ 程序 那么问题产生,我该如何创建我的第一个 C++ 项目呢?step 1.打开我的 CLionso,那么现在我想知道 C++ Executable 和 C++ Library 的区别根据我的编程经验应该不选择 C++ LibraryC++ Executable 和 C++ Libr
567. 字符串的排列题目描述给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。如果是,返回 true ;否则,返回 false 。换句话说,s1 的排列之一是 s2 的 子串 。示例 1:输入:s1 = "ab" s2 = "eidbaooo" 输出:true解释:s2 包含 s1 的排列之一 ("ba")示例 2:输入:s1= "ab" s2 = "eidboa
76. 最小覆盖子串题目描述给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。注意:对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。如果 s 中存在这样的子串,我们保证它是唯一的答案。示例 1:输入:s = "ADOBECODEBANC", t = "ABC" 输出
121. 买卖股票的最佳时机题目描述给定一个数组 prices它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0示例 1:输入:[7,1,5,3,6,4] 输出:5解释: 在第 2 天(股
402. 移掉 K 位数字题目描述给你一个以字符串表示的非负整数 num 和一个整数 k 移除这个数中的 k 位数字,使得剩下的数字最小 请你以字符串形式返回这个最小的数字。示例 1 :输入:num = "1432219", k = 3 输出:"1219" 解释:移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219 。示例 2 :输入:num = "10200", k = 1
853. 车队题目描述在一条单行道上,有 n 辆车开往同一目的地。目的地是几英里以外的 target 。给定两个整数数组 position 和 speed ,长度都是 n 其中 position[i] 是第 i 辆车的位置, speed[i] 是第 i 辆车的速度(单位是英里/小时)。一辆车永远不会超过前面的另一辆车,但它可以追上去,并与前车 以相同的速度 紧接着行驶。此时,我们会忽略这两辆车之间
316. 去除重复字母题目描述给你一个字符串 s请你去除字符串中重复的字母使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置)。示例 1:输入:s = "bcabc" 输出:"abc" 示例 2:输入:s = "cbacdcbc" 输出:"acdb"提示:s 由小写英文字母组成题目解析考虑从前往后遍历或者从后往前遍历题目要求需要保证字典序不变那么最终的输出结果中的
78. 子集 90. 子集 II78.题目描述给你一个整数数组 nums ,数组中的元素 互不相同 。 返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1:输入:nums = [1,2,3] 输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]] 示例 2:输入:nums = [0] 输出:[[],[0]]
216. 组合总和 III题目描述找出所有相加之和为 n 的 k 个数的组合,且满足下列条件:只使用数字1到9每个数字 最多使用一次返回 所有可能的有效组合的列表 。 该列表不能包含相同的组合两次 组合可以以任何顺序返回。示例 1:输入: k = 3, n = 7 输出: [[1,2,4]] 解释: 1 + 2 + 4 = 7 没有其他符合的组合了。示例 2:输入: k = 3, n = 9
77. 组合题目描述给定两个整数 n 和 k 返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。示例 1:输入:n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ]示例 2:输入:n = 1, k = 1 输出:[[1]]提示: ● 1 <= n <=
47. 全排列 II题目描述给定一个可包含重复数字的序列 nums 按任意顺序 返回所有不重复的全排列。示例 1:输入:nums = [1,1,2] 输出: [[1,1,2], [1,2,1], [2,1,1]] 示例 2:输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]提示:1 <= num
40. 组合总和 II题目描述给定一个候选人编号的集合 candidates 和一个目标数 target 找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意:解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8 输出: [ [1,1,
39. 组合总和题目描述给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target 找出 candidates 中可以使数字和为目标数 target 的所有不同组合并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以 无限制重复被选取 如果至少一个数字的被选数量不同,则两种组合是不同的。 对于给定的输入,保证和为 target
51. N 皇后题目描述按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 n*n 的棋盘上并且使皇后彼此之间不能相互攻击给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。 每一种解法包含一个不同的 n 皇后问题 的棋子放置方案 该方案中 'Q' 和 '.' 分别代表了皇后和空位。示例1示例2输入:n = 1 输
46. 全排列题目描述给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。 你可以 按任意顺序 返回答案。示例 1:输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2:输入:nums = [0,1] 输出:[[0,1],[1,0]] 示例 3:输入:nums = [1] 输出:[[
983. 最低票价题目描述在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。 在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出。 每一项是一个从 1 到 365 的整数。火车票有 三种不同的销售方式 :一张 为期一天 的通行证售价为costs[0] 美元;一张 为期七天 的通行证售价为 costs[1] 美元;一张 为期三十天 的通行证售价为 costs[2] 美元。通
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号