随笔分类 -  刷题记录

对于刷过的算法题进行记录
摘要:对应 剑指 Offer 56 - 数组中数字出现的次数 Ⅱ 问题描述 在一个数组 \(nums\) 中,有一个数字只出现了一次,但是其它的数字都出现了三次,请找出那个只出现了一次的数字 说明: 数组的长度 \(n\) 满足 \(1\leq n \leq 1000\) 数组中每个元素的数据范围 \(1 阅读全文
posted @ 2022-03-04 15:44 FatalFlower 阅读(74) 评论(0) 推荐(0)
摘要:对应 剑指 Offer 33 二叉树的后序遍历序列 问题描述 输入一个整数数组,判断该数组是否是某个二叉树的后序遍历结果,如果是则返回 true,否则返回 false。 说明: 数组的长度 \(\leq1000\) 数组中的任意两个数组都不相同 解决思路 假设这里输入的数组为 \(post\) 递归 阅读全文
posted @ 2022-03-02 14:55 FatalFlower 阅读(45) 评论(0) 推荐(0)
摘要:对应 LeetCode 105 从前序与中序遍历序列构造二叉树 问题描述 给定两个整数数组 \(pre\) 和 \(in\),其中 \(pre\) 是二叉树的先序遍历结果,而 \(in\) 是改二叉树的中序遍历结果,请通过 \(pre\) 和 \(in\) 来重新构建该二叉树并返回其对应的根节点 提 阅读全文
posted @ 2022-03-02 14:55 FatalFlower 阅读(67) 评论(0) 推荐(0)
摘要:对应 LeetCode 295 数据流中的中位数 ## 问题描述 设计一个支持如下两种操作的数据结构: void addNum(int):从数据流中获取一个元素,添加到当前的数据结构中 double findMedian():返回当前数据结构中存储的数据的中位数 ## 解决思路 由于这里无法确切知道 阅读全文
posted @ 2022-03-01 11:55 FatalFlower 阅读(164) 评论(0) 推荐(0)
摘要:对应 LeetCode 236 二叉树的最近公共祖先 ## 问题描述 给定一个二叉树,找到该树中两个指定节点的最近公共节点。 例如,对于给定的二叉树: 现在需要查找节点 \(2\) 和 \(0\) 的公共祖先节点,应当返回节点 \(3\)。 说明: 在输入的二叉树中,所有的节点值都是唯一的 要查找的 阅读全文
posted @ 2022-03-01 10:29 FatalFlower 阅读(53) 评论(0) 推荐(0)
摘要:对应 LeetCode 475.供暖器 问题描述 给出位于一条水平线上的房屋 \(houses\) 和供暖器 \(heaters\) 的位置,请找出并返回可以覆盖所有房屋的最小加热半径。所有供暖器都遵循你的半径标准,加热的半径也一样 比如,对于输入的 $house=[1, 5]$​,$heaters 阅读全文
posted @ 2021-12-20 09:51 FatalFlower 阅读(39) 评论(0) 推荐(0)
摘要:对应 126. 单词接龙 II 问题描述 按字典 wordList 完成从单词 beginWord 到单词 endWord 转化,一个表示此过程的 转换序列 是形式上像 beginWord → s1 → s2 → ... → sk 这样的单词序列,并满足: 每对相邻的单词之间仅有单个字母不同。 转换 阅读全文
posted @ 2021-12-16 17:13 FatalFlower 阅读(38) 评论(0) 推荐(0)
摘要:对应 LeetCode 752.转动转盘锁 ### 问题定义 你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' 。每个拨轮可以自由旋转:例如把 '9' 变为 '0','0' 变为 '9' 。每 阅读全文
posted @ 2021-12-16 16:40 FatalFlower 阅读(65) 评论(0) 推荐(0)
摘要:对应 LeetCode 127 单词接龙 问题定义 给定一个字典序列 wordList,一个初始的单词 beginWord 和一个目标单词 endWord,现在要求每次变换满足以下条件将 beginWord 转换为 endWord: 每次只能转换一个字母 转换后的单词必须出现在 wordList 中 阅读全文
posted @ 2021-12-03 15:16 FatalFlower 阅读(53) 评论(0) 推荐(0)
摘要:问题描述 给定两个有序的数组 \(nums1\) 和 \(nums2\),现在要求得这两个数组元素组成的序列中的中位数 要求:算法的时间复杂度要在 \(log_2n\) 级别内 解决思路 只要遍历了数组,那么算法的时间复杂度就为 \(O(n)\),不满足要求 一般时间复杂度为 \(O(log_2n) 阅读全文
posted @ 2021-11-07 16:00 FatalFlower 阅读(162) 评论(0) 推荐(0)
摘要:问题描述 给你一个整数 \(n\) 表示学生出勤的天数,在每一天学生的可能出勤情况为:'A'(缺勤)、'L'(迟到)、'P'(正常出勤)。 如果学生要获取出勤奖励,需要同时满足以下几个条件: 在 \(n\) 天中缺勤的天数不能超过两天 在 \(n\) 天中,不能有连续三天出现迟到的情况 现要求得在 阅读全文
posted @ 2021-11-06 22:22 FatalFlower 阅读(107) 评论(0) 推荐(0)
摘要:问题描述 给你一个正整数数组 nums 和一个整数 target。现在,可以给 nums 数组中的每个元素添加 + 或 -,通过一定的添加组合和顺序能够将整个数组 nums 的总和达到 target,求可行的组合的数量。 例如:对于输入的数组 nums 为 {1,1,1,1,1},target 为 阅读全文
posted @ 2021-11-04 15:18 FatalFlower 阅读(164) 评论(0) 推荐(0)
摘要:问题描述 本问题对应 LeetCode 1575. 统计所有可行路径](https://leetcode-cn.com/problems/count-all-possible-routes/)。 具体描述如下:给定一个互不相同的整数数组 locations,其中 locations[i] 表示第 i 阅读全文
posted @ 2021-10-31 16:57 FatalFlower 阅读(194) 评论(0) 推荐(0)
摘要:算法介绍 博耶-摩尔多数投票算法(英语:Boyer–Moore majority vote algorithm),中文常作多数投票算法、摩尔投票算法等,是一种用来寻找一组元素中占多数元素的常数空间级时间复杂度算法。 这一算法应用的问题原型是在集合中寻找可能存在的多数元素,这一元素在输入的序列重复出现 阅读全文
posted @ 2021-10-22 14:39 FatalFlower 阅读(192) 评论(0) 推荐(0)
摘要:问题描述 ​ 给定一个非负整数数组 nums 和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。 ​ 例如,对于输入 nums 为 {7, 2, 5, 10, 8},m 为 2,那么结果应当为 18,因为将 nums 划分为 {7, 2 阅读全文
posted @ 2021-10-19 15:34 FatalFlower 阅读(346) 评论(0) 推荐(0)
摘要:问题描述 ​ 给你一个数组 price[] 表示一支股票在第 i 天的价格为 price[i],现在有一些限制条件,要求在这些有限制的条件下求最大的股票收益。 ​ 限制条件为以下条件之一: 只允许买卖一次 121. 买卖股票的最佳时机 可以无限制地买卖,在再次购买股票之前必须卖掉手中已有的股票 12 阅读全文
posted @ 2021-09-22 16:12 FatalFlower 阅读(110) 评论(0) 推荐(0)
摘要:问题描述 ​ 给你一个字符串 s1 和 s2 ,编写一个函数来判断 s2 是否包含 s1 的排列。换句话说,s1 的排列之一是 s2 的一个子串。 ​ 比如,对于输入的 s1=adc 和 s2=dcda,s2 包含 s1 的排列子串 cda ,因此返回 true 解决思路 滑动窗口 固定一个长度为 阅读全文
posted @ 2021-09-13 11:52 FatalFlower 阅读(74) 评论(0) 推荐(0)
摘要:动态规划问题(十五)不含连续1的非负整数 问题描述 ​ 给定一个正整数 n,找出小于或等于 n 的非负整数中,其二进制表示不包含连续的 1 的数字的数量,注意,这里的连续是指:两个及以上的 1 连续出现则称之为连续的 1。 ​ 比如,对于输入的的整数 n = 8, 那么结果为 6 0:0000 1: 阅读全文
posted @ 2021-09-12 19:19 FatalFlower 阅读(142) 评论(0) 推荐(0)
摘要:动态规划问题(十四)自动换行问题 问题描述 ​ 给你一系列的单词,现在要把这些单词放到文本域里,为了美观,要求将这些单词进行换行处理。现在已知每一行的宽度 width,求将这些单词放入文本域之后最少会浪费多少个单位字符的宽度(注意,单词与单词之间的间隔空格不算在其中),假定每个单词的宽度小于行的宽度 阅读全文
posted @ 2021-09-10 16:25 FatalFlower 阅读(441) 评论(0) 推荐(1)
摘要:滑动窗口问题(一)最小覆盖子串 问题描述 ​ 给你一个字符串 s 和一个字符串 t。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在这样的子串,那么返回 ""。 ​ 比如,对于输入的字符串 s = "ADOBECODEBANC",t = "ABC",那么 s 中的最小子串为 BANC 解 阅读全文
posted @ 2021-09-10 12:48 FatalFlower 阅读(135) 评论(0) 推荐(0)