剑指 Offer 专项突击版刷题计划
文章平均质量分 60
Valishment
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
剑指 Offer II 038. 每日温度
剑指 Offer II 038. 每日温度刷题第 12 天。GO!GO!GO!原题剑指 Offer II 038. 每日温度请根据每日 气温 列表 temperatures ,重新生成一个列表,要求其对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。示例 1:输入: temperatures = [73,74,75,71,69,72,76,73]输出: [1,1,4,2,1,1,0,0]示例 2:输入: temperatur原创 2022-03-09 10:34:25 · 257 阅读 · 0 评论 -
剑指 Offer II 035. 最小时间差
剑指 Offer II 035. 最小时间差原题给定一个 24 小时制(小时:分钟 “HH:MM”)的时间列表,找出列表中任意两个时间的最小时间差并以分钟数表示。提示:2 <= timePoints <= 2 * 104timePoints[i] 格式为 "HH:MM"解题思路先分析下给定两个时间, 如何找到这两个时间的最小时间差。设时间 t1、 t2, 时间差 diff; (以同一天为标准, t1 < t2)。在下面的表述中, 我们使用分钟表示。如果计算当天的原创 2022-03-08 20:03:48 · 168 阅读 · 0 评论 -
剑指 Offer II 032. 有效的变位词
剑指 Offer II 032. 有效的变位词原题给定两个字符串 s 和 t ,编写一个函数来判断它们是不是一组变位词(字母异位词)。注意:若 *s* 和 *t* 中每个字符出现的次数都相同且字符顺序不完全相同,则称 *s* 和 *t* 互为变位词(字母异位词)。1 <= s.length, t.length <= 5 * 104s and t 仅包含小写字母解题思路这道题和之前的 剑指 Offer II 014. 字符串中的变位词 / 剑指 Offer II 015. 字符串原创 2022-03-07 15:09:44 · 286 阅读 · 0 评论 -
剑指 Offer II 029. 排序的循环链表
剑指 Offer II 029. 排序的循环链表原题给定循环单调非递减列表中的一个点,写一个函数向这个列表中插入一个新元素 insertVal ,使这个列表仍然是循环升序的。给定的可以是这个列表中任意一个顶点的指针,并不一定是这个列表中最小元素的指针。如果有多个满足条件的插入位置,可以选择任意一个位置插入新的值,插入后整个列表仍然保持有序。如果列表为空(给定的节点是 null),需要创建一个循环有序列表并返回这个节点。否则。请返回原先给定的节点。0 <= Number of Nodes原创 2022-03-04 17:19:43 · 1017 阅读 · 0 评论 -
剑指 Offer II 009. 乘积小于 K 的子数组
剑指 Offer II 009. 乘积小于 K 的子数组原题剑指 Offer II 009. 乘积小于 K 的子数组解法1: 枚举最直观的解决方法就是枚举每一个子数组左边界和右边界, 并查看该子数组的乘积是否小于 k。设子数组的乘积为 product,设子数组的左边界下标为 i (0 <= i < nums.length), 右边界下标为 j; 开始时 i = j, 也就是该子数组只有一个元素的时候; 此时, product = nums[j]。当 product < k原创 2022-03-02 10:58:13 · 275 阅读 · 0 评论 -
剑指 Offer II 008. 和大于等于 target 的最短子数组
剑指 Offer II 008. 和大于等于 target 的最短子数组原题给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 01 <= target <= 1091 <= nums.length <= 1051 <= nums[i] <= 105解题思路原创 2022-03-02 10:55:36 · 183 阅读 · 0 评论 -
剑指 Offer II 007. 数组中和为 0 的三个数
原题给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a ,b ,c ,使得 a + b + c = 0 ;请找出所有和为 0 且 不重复 的三元组。这也是一道双指针类型的题目; 特殊的是, 这道题目要求的是三个数, 经常遇到, 也经常不知道怎么做, 所以这道题还是值得好好记下。解题思路要把双指针的思路应用到三元组上, 就必须将问题化为双指针类型。设数组元素 a,b,c, a + b + c = 0;则 -a = b + c;先针对一个元素 a, 从数组中找到两个元原创 2022-02-27 20:18:24 · 445 阅读 · 0 评论 -
剑指 Offer II 004. 只出现一次的数字
剑指 Offer II 004. 只出现一次的数字原题给定两个 01 字符串 a 和 b ,请计算它们的和,并以二进制字符串的形式输出。输入为 非空 字符串且只包含数字 1 和 0。解法一: 快排 + 顺序查找解题思路这是我解该题的第一想法: 既然每个数字要么出现 1 次, 要么出现了 3 次; 那么只要数字是按顺序排列, 数组中元素要么重复出现三次, 要么就出现一次。我们对数组进行 sort 后, 在保证索引不越界的情况下, 我们可以进行如下比较从第1个元素开始, 查看其是否与第3个元素相原创 2022-02-27 20:16:41 · 176 阅读 · 0 评论 -
剑指 Offer II 003. 前 n 个数字二进制中 1 的个数
剑指 Offer II 003. 前 n 个数字二进制中 1 的个数题目原意给定两个整数 a 和 b ,求它们的除法的商 a/b ,要求不得使用乘号 ‘*’、除号 ‘/’ 以及求余符号 ‘%’ 。注意:整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231−1]。本题中,如果除法结果溢出,则返回 231 − 1解题思路这道原创 2022-02-27 20:14:50 · 279 阅读 · 0 评论 -
剑指 Offer II 010. 和为 k 的子数组
剑指 Offer II 010. 和为 k 的子数组题目要求给定一个整数数组和一个整数 k **,**请找到该数组中和为 k 的连续子数组的个数。1 <= nums.length <= 2 * 104-1000 <= nums[i] <= 1000-107 <= k <= 107解题思路题目要求的是 “连续子数组”, 因此此题和排序没关系;题目还要求的是子数组的个数。数组有两个属性, 左边界和右边界, 我们设其分别为 i, j(j >= i)假原创 2022-02-26 19:21:51 · 358 阅读 · 0 评论 -
剑指 Offer 专项突击版 刷题计划目录(持续更新中)
Github仓库本刷题计划的所有代码和题解同步至我的个人仓库, 欢迎查看。Github目录第一天剑指 Offer II 001. 整数除法剑指 Offer II 003. 前 n 个数字二进制中 1 的个数第二天剑指 Offer II 004. 只出现一次的数字第三天剑指 Offer II 007. 数组中和为 0 的三个数剑指 Offer II 008. 和大于等于 target 的最短子数组.md剑指 Offer II 009. 乘积小于 K 的子数组.md...原创 2022-02-25 16:33:05 · 343 阅读 · 0 评论 -
剑指 Offer II 009. 乘积小于 K 的子数组
剑指 Offer II 009. 乘积小于 K 的子数组解法1: 枚举最直观的解决方法就是枚举每一个子数组左边界和右边界, 并查看该子数组的乘积是否小于 k。设子数组的乘积为 product,设子数组的左边界下标为 i (0 <= i < nums.length), 右边界下标为 j; 开始时 i = j, 也就是该子数组只有一个元素的时候; 此时, product = nums[j]。当 product < k 时, 说明存在一种子数组, 使得乘积小于 k; ++resul原创 2022-02-25 16:30:08 · 359 阅读 · 0 评论
分享