随笔分类 -  算法

记录自己的刷题思路,刷题路线及复盘学习参考公众号:代码随想录
摘要:968.监控二叉树 题目 给定一个二叉树,我们在树的节点上安装摄像头。 节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。 计算监控树的所有节点所需的最小摄像头数量。 示例 1: 输入:[0,0,null,0,0] 输出:1 解释:如图所示,一台摄像头足以监控所有节点。 示例 2: 输入:[ 阅读全文
posted @ 2021-08-15 13:55 rananie 阅读(75) 评论(0) 推荐(0)
摘要:714.买卖股票的最佳时机含手续费 题目 给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 ;整数 fee 代表了交易股票的手续费用。 你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。 返回获得利润的最 阅读全文
posted @ 2021-08-10 16:34 rananie 阅读(48) 评论(0) 推荐(0)
摘要:738. 单调递增的数字 题目 给定一个非负整数 N,找出小于或等于 N 的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增。 (当且仅当每个相邻位数上的数字 x 和 y 满足 x ⇐ y 时,我们称这个整数是单调递增的。) 示例 1: 输入: N = 10 输出: 9 示例 2: 输入 阅读全文
posted @ 2021-08-09 18:13 rananie 阅读(63) 评论(0) 推荐(0)
摘要:56.合并区间 题目 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。 示例 1: 输入:intervals = [[1,3],[2, 阅读全文
posted @ 2021-08-09 16:36 rananie 阅读(76) 评论(0) 推荐(0)
摘要:763.划分字母区间 题目 字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。 示例: 输入:S = "ababcbacadefegdehijhklij" 输出:[9,7,8] 解释: 划分结果为 "ababcb 阅读全文
posted @ 2021-08-06 23:31 rananie 阅读(148) 评论(0) 推荐(0)
摘要:435.无重叠区间 题目 给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。 注意: 可以认为区间的终点总是大于它的起点。 区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。 示例 1: 输入: [ [1,2], [2,3], [3,4], [1,3] ] 输出 阅读全文
posted @ 2021-08-03 11:18 rananie 阅读(104) 评论(0) 推荐(0)
摘要:452.用最少数量的箭引爆气球 题目 在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。 一支弓箭可以沿着 x 轴从不同点完全垂直地射出。在坐标 x 处射 阅读全文
posted @ 2021-08-01 20:37 rananie 阅读(139) 评论(0) 推荐(0)
摘要:406.根据身高重建队列 题目 假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。 请你重新构造并返回输入数组 peop 阅读全文
posted @ 2021-07-30 21:38 rananie 阅读(55) 评论(0) 推荐(0)
摘要:860.柠檬水找零 题目 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。 每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。 注意,一开始你手头没有任何零钱。 如果你能给每位顾客正确找 阅读全文
posted @ 2021-07-28 21:01 rananie 阅读(52) 评论(0) 推荐(0)
摘要:135.分发糖果 题目 老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。 你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。 评分更高的孩子必须比他两侧的邻位孩子获得更多的糖果。 那么这样下来,老师至少需要准备多少颗糖果 阅读全文
posted @ 2021-07-26 11:49 rananie 阅读(83) 评论(0) 推荐(0)
摘要:134.加油站 题目 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 如果你可以绕环路行驶一周,则返回出发时加油站的编号 阅读全文
posted @ 2021-07-20 11:26 rananie 阅读(62) 评论(0) 推荐(0)
摘要:1005.K次取反后最大化的数组和 题目 给定一个整数数组 A,我们只能用以下方法修改该数组:我们选择某个索引 i 并将 A[i] 替换为 -A[i],然后总共重复这个过程 K 次。(我们可以多次选择同一个索引 i。) 以这种方式修改数组后,返回数组可能的最大和。 示例 1: 输入:A = [4,2 阅读全文
posted @ 2021-07-19 21:39 rananie 阅读(46) 评论(0) 推荐(0)
摘要:45.跳跃游戏Ⅱ 题目 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 假设你总是可以到达数组的最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: 2 解释: 跳到最后一个位 阅读全文
posted @ 2021-07-11 23:47 rananie 阅读(75) 评论(0) 推荐(0)
摘要:55.跳跃游戏 题目 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 示例 1: 输入:nums = [2,3,1,1,4] 输出:true 解释:可以先跳 1 步,从下标 0 到达下标 1, 阅读全文
posted @ 2021-07-08 16:06 rananie 阅读(48) 评论(0) 推荐(0)
摘要:122. 买卖股票的最佳时机 II 题目 给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 阅读全文
posted @ 2021-07-07 21:15 rananie 阅读(51) 评论(0) 推荐(0)
摘要:53.最大子序列和 题目 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例 1: 输入:nums = [-2,1,-3,4,-1,2,1,-5,4] 输出:6 解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。 示例 2: 输入: 阅读全文
posted @ 2021-07-05 17:09 rananie 阅读(77) 评论(0) 推荐(0)
摘要:376.摆动序列 题目 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。 例如, [1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6, -3, 5, -7, 阅读全文
posted @ 2021-07-02 20:53 rananie 阅读(93) 评论(0) 推荐(0)
摘要:455.分发饼干 题目 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给 阅读全文
posted @ 2021-06-30 11:13 rananie 阅读(49) 评论(0) 推荐(0)
摘要:本质 暴力搜索、枚举 使用场景 1.组合问题:N个数里面按一定规律找出k个数的组合 2.排列问题:N个数按一定规则全排序,有几种排列方式 3.切割问题:一个字符串按一定规则有几种切割方式 4.子集问题:一个N个数的集合里有多少符合条件的子集 5.棋盘问题:N皇后,解数独等等 要点 回溯算法都可以抽象 阅读全文
posted @ 2021-06-30 09:56 rananie 阅读(149) 评论(0) 推荐(0)
摘要:37.解数独 题目 编写一个程序,通过填充空格来解决数独问题。 数独的解法需 遵循如下规则: 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图) 数独部分空格内已填入了数字,空白格用 '.' 表 阅读全文
posted @ 2021-06-28 20:32 rananie 阅读(175) 评论(0) 推荐(0)