
力扣刷题日记
文章平均质量分 80
大可爱家的小可爱
这个作者很懒,什么都没留下…
展开
-
力扣刷题日记
力扣刷题日记24---剑指 Offer II 024. 反转链表思路1:三指针(迭代)思路2:递归思路3:栈给定单链表的头节点 head ,请反转链表,并返回反转后的链表的头节点。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例 2:输入:head = [1,2]输出:[2,1]示例 3:输入:head = []输出:[]提示:链表中节点的数目范围是 [0, 5000]-5000 <= Node.val <= 5000进阶:链表原创 2021-12-23 15:29:42 · 671 阅读 · 0 评论 -
力扣刷题日记
力扣刷题日记23---剑指 Offer II 023. 两个链表的第一个重合节点给定两个单链表的头节点 headA 和 headB ,请找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构 。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2原创 2021-12-23 11:16:05 · 663 阅读 · 0 评论 -
力扣刷题日记
力扣刷题日记22---剑指 Offer II 022. 链表中环的入口节点给定一个链表,返回链表开始入环的第一个节点。 从链表的头节点开始沿着 next 指针进入环的第一个节点为环的入口节点。如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。说明:不允许修改给定的链表。示例 1:输入:head = [3,2原创 2021-12-22 20:57:00 · 287 阅读 · 0 评论 -
力扣刷题日记
力扣刷题日记21---剑指 Offer II 021. 删除链表的倒数第 n 个结点给定一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]提示:链表中结点的数目为 sz1 <= sz <= 300 <= Node.val <= 1原创 2021-12-10 16:12:12 · 390 阅读 · 0 评论 -
力扣刷题日记
力扣刷题日记20---剑指 Offer II 020. 回文子字符串的个数给定一个字符串 s ,请计算这个字符串中有多少个回文子字符串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例 1:输入:s = “abc”输出:3解释:三个回文子串: “a”, “b”, “c”示例 2:输入:s = “aaa”输出:6解释:6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”提示:1 <= s.length <= 1原创 2021-12-10 16:11:35 · 421 阅读 · 0 评论 -
力扣刷题日记
力扣刷题日记19---剑指 Offer II 019. 最多删除一个字符得到回文给定一个非空字符串 s,请判断如果 最多 从字符串中删除一个字符能否得到一个回文字符串。示例 1:输入: s = “aba”输出: true示例 2:输入: s = “abca”输出: true解释: 可以删除 “c” 字符 或者 “b” 字符示例 3:输入: s = “abc”输出: false提示:1 <= s.length <= 105s 由小写英文字母组成...原创 2021-12-07 11:18:37 · 789 阅读 · 0 评论 -
力扣刷题日记
力扣刷题日记18---剑指 Offer II 018. 有效的回文给定一个字符串 s ,验证 s 是否是 回文串 ,只考虑字母和数字字符,可以忽略字母的大小写。本题中,将空字符串定义为有效的 回文串 。示例 1:输入: s = “A man, a plan, a canal: Panama”输出: true解释:“amanaplanacanalpanama” 是回文串示例 2:输入: s = “race a car”输出: false解释:“raceacar” 不是回文串提示:1 &原创 2021-12-04 15:59:39 · 122 阅读 · 0 评论 -
力扣刷题日记
力扣刷题日记17---剑指 Offer II 017. 含有所有字符的最短字符串给定两个字符串 s 和 t 。返回 s 中包含 t 的所有字符的最短子字符串。如果 s 中不存在符合条件的子字符串,则返回空字符串 “” 。如果 s 中存在多个符合条件的子字符串,返回任意一个。注意: 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。示例 1:输入:s = “ADOBECODEBANC”, t = “ABC”输出:“BANC”解释:最短子字符串 “BANC” 包含了原创 2021-12-03 20:31:38 · 259 阅读 · 0 评论 -
力扣刷题日记
力扣刷题日记16---剑指 Offer II 016. 不含重复字符的最长子字符串思路1:滑动窗口 + 哈希表unordered_mapunordered_setvector(本题中要比使用哈希表更优)思路2:双指针 + 哈希表思路3:滑动窗口(不用哈希表)给定一个字符串 s ,请你找出其中不含有重复字符的 最长连续子字符串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子字符串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbb原创 2021-12-02 21:26:06 · 669 阅读 · 0 评论 -
力扣刷题日记
力扣刷题日记15---剑指 Offer II 015. 字符串中的所有变位词给定两个字符串 s 和 p,找到 s 中所有 p 的 变位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。变位词 指字母相同,但排列不同的字符串。示例 1:输入: s = “cbaebabacd”, p = “abc”输出: [0,6]解释:起始索引等于 0 的子串是 “cba”, 它是 “abc” 的变位词。起始索引等于 6 的子串是 “bac”, 它是 “abc” 的变位词。示例 2:输入: s =原创 2021-12-02 10:27:55 · 715 阅读 · 0 评论 -
力扣刷题日记
剑指 Offer II 014. 字符串中的变位词 题解原创 2021-12-01 11:39:05 · 280 阅读 · 0 评论 -
力扣刷题日记
力扣刷题日记13---剑指 Offer II 013. 二维子矩阵的和给定一个二维矩阵 matrix,以下类型的多个请求:计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2) 。实现 NumMatrix 类:NumMatrix(int[][] matrix) 给定整数矩阵 matrix 进行初始化int sumRegion(int row1, int col1, int row2, int col2) 返回左上角 (row1, co原创 2021-11-30 16:37:06 · 355 阅读 · 0 评论 -
力扣刷题日记
力扣刷题日记12---剑指 Offer II 012. 左右两边子数组的和相等给你一个整数数组 nums ,请计算数组的 中心下标 。数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。如果数组有多个中心下标,应该返回 最靠近左边 的那一个。如果数组不存在中心下标,返回 -1 。示例 1:输入:nums = [1,7,3,6,5,6]输出:3原创 2021-11-29 20:55:47 · 237 阅读 · 0 评论 -
力扣刷题日记
力扣刷题日记11---剑指 Offer II 011. 0 和 1 个数相同的子数组给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。示例 1:输入: nums = [0,1]输出: 2说明: [0, 1] 是具有相同数量 0 和 1 的最长连续子数组。示例 2:输入: nums = [0,1,0]输出: 2说明: [0, 1] (或 [1, 0]) 是具有相同数量 0 和 1 的最长连续子数组。提示:1 <= nums.l原创 2021-11-29 20:11:49 · 291 阅读 · 0 评论 -
力扣刷题日记
力扣刷题日记10---剑指 Offer II 010. 和为 k 的子数组思路1:前缀和 + 双层循环思路2:前缀和 + map容器思路3:前缀和 + 哈希表给定一个整数数组和一个整数 k ,请找到该数组中和为 k 的连续子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2解释: 此题 [1,1] 与 [1,1] 为两种不同的情况示例 2 :输入:nums = [1,2,3], k = 3输出: 2提示:1 <= nums.length <=原创 2021-11-28 22:04:56 · 485 阅读 · 0 评论 -
力扣刷题日记
力扣刷题日记9---剑指 Offer II 009. 乘积小于 K 的子数组思路1:暴力方法思路2:滑动窗口给定一个正整数数组 nums和整数 k ,请找出该数组内乘积小于 k 的连续的子数组的个数。示例 1:输入: nums = [10,5,2,6], k = 100输出: 8解释: 8 个乘积小于 100 的子数组分别为: [10], [5], [2], [6], [10,5], [5,2], [2,6], [5,2,6]。需要注意的是 [10,5,2] 并不是乘积小于100的子数组。示例原创 2021-11-28 20:17:22 · 490 阅读 · 0 评论 -
力扣刷题日记
力扣刷题日记8---原创 2021-11-28 16:42:56 · 242 阅读 · 0 评论 -
力扣刷题日记
力扣刷题日记7---原创 2021-11-27 14:38:12 · 205 阅读 · 0 评论 -
力扣刷题日记
力扣刷题日记6---剑指 Offer II 006. 排序数组中两个数字之和原创 2021-11-26 15:36:58 · 126 阅读 · 0 评论 -
力扣刷题日记
力扣刷题日记5---剑指 Offer II 005. 单词长度的最大乘积思路1:暴力解法思路2:巧用二进制给定一个字符串数组 words,请计算当两个字符串 words[i] 和 words[j] 不包含相同字符时,它们长度的乘积的最大值。假设字符串中只包含英语的小写字母。如果没有不包含相同字符的一对字符串,返回 0。示例 1:输入: words = [“abcw”,“baz”,“foo”,“bar”,“fxyz”,“abcdef”]输出: 16解释: 这两个单词为 “abcw”, “fxyz”。原创 2021-11-26 14:51:51 · 128 阅读 · 0 评论 -
力扣刷题日记
力扣刷题日记4---剑指 Offer II 004. 只出现一次的数字给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。示例 1:输入:nums = [2,2,3,2]输出:3示例 2:输入:nums = [0,1,0,1,0,1,100]输出:100提示:1 <= nums.length <= 3 * 104-231 <= nums[i] <= 231 - 1nums 中,除某个元素仅原创 2021-11-25 21:32:03 · 593 阅读 · 0 评论 -
力扣刷题日记
力扣刷题日记3---剑指 Offer II 003. 前 n 个数字二进制中 1 的个数原创 2021-11-25 16:16:29 · 503 阅读 · 0 评论 -
力扣刷题日记
力扣刷题日记2---剑指 Offer II 002. 二进制加法给定两个 01 字符串 a 和 b ,请计算它们的和,并以二进制字符串的形式输出。输入为 非空 字符串且只包含数字 1 和 0。示例 1:输入: a = “11”, b = “10”输出: “101”示例 2:输入: a = “1010”, b = “1011”输出: “10101”提示:每个字符串仅由字符 ‘0’ 或 ‘1’ 组成。1 <= a.length, b.length <= 10^4字符串如果不是原创 2021-11-25 14:14:16 · 526 阅读 · 0 评论 -
力扣刷题日记
剑指 Offer II 001. 整数除法思路1思路2给定两个整数 a 和 b ,求它们的除法的商 a/b ,要求不得使用乘号 ‘*’、除号 ‘/’ 以及求余符号 ‘%’ 。注意:整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231−1]。本题中,如果除法结果溢出,则返回 231 − 1示例 1:输入:a = 15,原创 2021-11-24 22:07:30 · 549 阅读 · 0 评论