力扣LeetCode
文章平均质量分 80
nepu_bin
前方的路没有答案,只有走着走着才有了答案
展开
-
给一个链表,按照指定的索引进行“翻转“操作。
Problem给定一个链表,如 1->2->3->4->5->6,指定k = 4(表示第4个节点),则翻转后的效果为 5->6->4->1->2->3。Solution根据示例,题意其实就很简单了,以第k个节点(称为‘界限节点’)为界限分为两段,前一段换到界限节点后面,后一段换到界限节点的前面。Codes核心算法部分:Node* reverse(Node* head, int k) { if (head == nullptr || k原创 2021-12-03 00:14:59 · 531 阅读 · 0 评论 -
力扣第 266 场周赛总结
5918. 统计字符串中的元音子字符串子字符串 是字符串中的一个连续(非空)的字符序列。元音子字符串 是 仅 由元音(‘a’、‘e’、‘i’、‘o’ 和 ‘u’)组成的一个子字符串,且必须包含 全部五种 元音。给你一个字符串 word ,统计并返回 word 中 元音子字符串的数目 。示例 1:输入:word = "aeiouu"输出:2解释:下面列出 word 中的元音子字符串(斜体加粗部分):- "aeiouu"- "aeiouu"示例 2:输入:word = "unicorn原创 2021-11-07 13:27:58 · 205 阅读 · 0 评论 -
LeetCode268.丢失的数字
268. 丢失的数字给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。示例 1:输入:nums = [3,0,1]输出:2解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。示例 2:输入:nums = [0,1]输出:2解释:n = 2,因为有 2 个数字,所以所有的数字都在范围 [0,2] 内。2 是丢失的数字,因为它没有出现在 nums 中原创 2021-11-06 12:17:25 · 236 阅读 · 0 评论 -
力扣第 265 场周赛总结
5914. 值相等的最小索引给你一个下标从 0 开始的整数数组 nums ,返回 nums 中满足 i mod 10 == nums[i] 的最小下标 i ;如果不存在这样的下标,返回 -1 。x mod y 表示 x 除以 y 的 余数 。示例 1:输入:nums = [0,1,2]输出:0解释:i=0: 0 mod 10 = 0 == nums[0].i=1: 1 mod 10 = 1 == nums[1].i=2: 2 mod 10 = 2 == nums[2].所有下标都满足原创 2021-10-31 11:33:25 · 240 阅读 · 1 评论 -
力扣第 264 场周赛总结
5906. 句子中的有效单词数句子仅由小写字母(‘a’ 到 ‘z’)、数字(‘0’ 到 ‘9’)、连字符(’-’)、标点符号(’!’、’.’ 和 ‘,’)以及空格(’ ')组成。每个句子可以根据空格分解成 一个或者多个 token ,这些 token 之间由一个或者多个空格 ’ ’ 分隔。如果一个 token 同时满足下述条件,则认为这个 token 是一个有效单词:仅由小写字母、连字符和/或标点(不含数字)。至多一个 连字符 ‘-’ 。如果存在,连字符两侧应当都存在小写字母(“a-b” 是一个有效原创 2021-10-24 12:06:53 · 200 阅读 · 0 评论 -
力扣第 263 场周赛总结
5902. 检查句子中的数字是否递增句子是由若干 token 组成的一个列表,token 间用 单个 空格分隔,句子没有前导或尾随空格。每个 token 要么是一个由数字 0-9 组成的不含前导零的 正整数 ,要么是一个由小写英文字母组成的 单词 。示例,“a puppy has 2 eyes 4 legs” 是一个由 7 个 token 组成的句子:“2” 和 “4” 是数字,其他像 “puppy” 这样的 tokens 属于单词。给你一个表示句子的字符串 s ,你需要检查 s 中的 全部 数字是否原创 2021-10-17 18:02:16 · 228 阅读 · 2 评论 -
力扣第 262 场周赛总结
5894. 至少在两个数组中出现的值给你三个整数数组 nums1、nums2 和 nums3 ,请你构造并返回一个 不同 数组,且由 至少 在 两个 数组中出现的所有值组成。数组中的元素可以按 任意 顺序排列。示例 1:输入:nums1 = [1,1,3,2], nums2 = [2,3], nums3 = [3]输出:[3,2]解释:至少在两个数组中出现的所有值为:- 3 ,在全部三个数组中都出现过。- 2 ,在数组 nums1 和 nums2 中出现过。示例 2:输入:nums1原创 2021-10-10 15:49:36 · 283 阅读 · 0 评论 -
力扣第 261 场周赛总结
5890. 转换字符串的最少操作次数给你一个字符串 s ,由 n 个字符组成,每个字符不是 'X' 就是 'O' 。一次 操作 定义为从 s 中选出 三个连续字符 并将选中的每个字符都转换为 'O' 。注意,如果字符已经是 'O' ,只需要保持 不变 。返回将 s 中所有字符均转换为 'O' 需要执行的 最少 操作次数。 示例 1:输入:s = "XXX"输出:1解释:XXX -> OOO一次操作,选中全部 3 个字符,并将它们转换为 'O' 。示例 2:输入:s =原创 2021-10-03 18:55:50 · 245 阅读 · 0 评论 -
力扣第 260 场周赛总结
周赛入口:「字节跳动 & 力扣」联合主办 第 260 场周赛2016. 增量元素之间的最大差值给你一个下标从 0 开始的整数数组 nums ,该数组的大小为 n ,请你计算 nums[j] - nums[i] 能求得的 最大差值 ,其中 0 <= i < j < n 且 nums[i] < nums[j] 。返回 最大差值 。如果不存在满足要求的 i 和 j ,返回 -1 。示例 1:输入:nums = [7,1,5,4]输出:4解释:最大差值出现在 i =原创 2021-09-28 21:23:40 · 226 阅读 · 0 评论 -
LeetCode组合系列问题:组合 组合总和ⅠⅡ
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 <= 201 <= k <= n求解组合问题不考虑一组数据的顺序,也就是说,一组数据是不是相原创 2021-09-04 20:08:24 · 559 阅读 · 0 评论 -
LeetCode 98. 验证二叉搜索树
Problem: 验证二叉搜索树题目描述:给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。LeetCode原题传送Solution对于二叉搜索树BST,在中序遍历的时候会得到单调递增的序列,注意这里是严格意义上的单调递增(不存在相等的情况),按照这一特点笔者想到的最直接的方法是:中序遍历收集节点的值,再遍历数组判断是否是单调递增即可。中序原创 2021-08-15 20:53:21 · 93 阅读 · 1 评论 -
动态规划: 最长重复子数组
最长重复子数组给定两个整数数组A、B,返回两个数组中公共的、长度最长的子数组的长度。示例:输入:A: [1,2,3,2,1]B: [3,2,1,4,7]输出:3解释:长度最长的公共子数组是 [3, 2, 1] 。Solution与之前写过的最长公共子序列还是有所区别的,子数组类似于子串,都是连续的。子序列可以是不连续的(注意:可以是不连续的,连续的情况也算是子序列)。看到求解最值问题,首先可以想到动态规划算法,因此在思考再三之后,有了下面的想法:确定dp Table的维度,因为原创 2021-08-13 15:44:53 · 636 阅读 · 0 评论 -
力扣1141: 求最长公共子序列
Description给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0。一个字符串的 子序列是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。点击这里查看原题例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。Analysis注意题目要求的是公原创 2021-05-16 16:24:54 · 344 阅读 · 0 评论 -
链表成环问题
LeetCode经典算法题 ---- 链表成环判断以及定位环入口哈希表 or 双指针解法在此,妙解此题原创 2021-04-17 16:29:20 · 1260 阅读 · 1 评论 -
全排列问题
46. 全排列给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/permutations经典的一道回溯算法题,我们需要找出所有可能的排列组合,共有 n!种排列的方式。图解↓回溯算法代码:class So原创 2021-04-04 23:48:48 · 403 阅读 · 5 评论 -
删除排序链表中的重复元素系列
83. 删除排序链表中的重复元素存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。返回同样按升序排列的结果链表。class Solution {public: ListNode* deleteDuplicates(ListNode* head) { if (!head) return head; ListNode* virNode = new ListNode(0, head); ListNode* curNode = hea原创 2021-03-26 14:10:21 · 200 阅读 · 0 评论 -
剑指 Offer 42. 连续子数组的最大和
题目描述:输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。示例1 :输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。提示:1 <= arr.length <= 10^5-100 <= arr[i] <= 100>>>>>>>>>>>>>>力扣原题传送原创 2021-03-24 16:59:03 · 241 阅读 · 0 评论 -
反转链表
链表节点结构体定义:struct ListNode { int val; ListNode* next; ListNode() : val(0), next(nullptr) {} ListNode(int x) : val(x), next(nullptr) {} ListNode(int x, ListNode* next) : val(x), next(next) {}};每个节点包含 val 值以及 指向下一个节点的指针,结构体中定义实现了构造函数的三种重载。力扣206:反转一个原创 2021-03-19 11:44:32 · 261 阅读 · 1 评论 -
猜字谜 外国友人仿照中国字谜设计了一个英文版猜字谜小游戏,请你来猜猜看吧。 字谜的迷面 puzzle 按字符串形式给出,如果一个单词 word 符合下面两个条件,那么它就可以算作谜底:
今天是元宵节,力扣也细心地为我们准备了一道有关节日的题,一起看看吧:1178. 猜字谜外国友人仿照中国字谜设计了一个英文版猜字谜小游戏,请你来猜猜看吧。字谜的迷面 puzzle 按字符串形式给出,如果一个单词 word 符合下面两个条件,那么它就可以算作谜底:1. 单词 word 中包含谜面 puzzle 的第一个字母。2. 单词 word 中的每一个字母都可以在谜面 puzzle 中找到。例如,如果字谜的谜面是 “abcdefg”,那么可以作为谜底的单词有 “faced”, “cabbage”原创 2021-02-26 16:34:33 · 987 阅读 · 3 评论