
LeetCode
文章平均质量分 57
LeetCode
牧心.
心之所向,素履以往
展开
-
【LeetCode】关于链表的删除
[237. 删除链表中的节点] [剑指 Offer 18. 删除链表的节点] [203. 移除链表元素] [2095. 删除链表的中间节点【快慢指针】] [1171. 从链表中删去总和值为零的连续节点] [2181. 合并零之间的节点] [83. 删除排序链表中的重复元素] [82. 删除排序链表中的重复元素 II] [面试题 02.01. 移除重复节点]原创 2022-03-10 00:41:53 · 1673 阅读 · 0 评论 -
【LeetCode】23. 合并K个升序链表 & 24. 两两交换链表中的节点 & 25. K 个一组翻转链表
【LeetCode】23. 合并K个升序链表 & 24. 两两交换链表中的节点 & 25. K 个一组翻转链表原创 2022-03-07 23:57:26 · 1769 阅读 · 0 评论 -
【LeetCode】第 266 场周赛
文章目录[5918. 统计字符串中的元音子字符串](https://leetcode-cn.com/problems/count-vowel-substrings-of-a-string/)题解[5919. 所有子字符串中的元音](https://leetcode-cn.com/problems/vowels-of-all-substrings/)[5920. 分配给商店的最多商品的最小值](https://leetcode-cn.com/problems/minimized-maximum-of-prod原创 2021-11-07 20:39:11 · 7735 阅读 · 0 评论 -
【LeetCode】从上到下打印二叉树 I、II、III【层次遍历】【队列】【双端队列】
1. 剑指 Offer 32 - I. 从上到下打印二叉树题目描述从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。输入例如:给定二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回:[3,9,20,15,7]提示:节点总数 <= 1000题解【层次遍历】。最基础的层次遍历,借助队列实现。代码/** * Definition fo...原创 2021-09-26 00:19:56 · 14085 阅读 · 0 评论 -
【LeetCode】72. 编辑距离 【动态规划】
题目链接:https://leetcode-cn.com/problems/edit-distance/题目描述给你两个单词word1 和word2,请你计算出将word1转换成word2 所使用的最少操作数。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符测试用例示例1:输入:word1 = "horse", word2 = "ros"输出:3解释:horse -> rorse (将 'h' 替换为 'r')rors...原创 2021-08-28 23:07:09 · 9789 阅读 · 0 评论 -
【LeetCode】17. 电话号码的字母组合 【回溯】
题目链接:题目介绍给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。测试用例示例 1:输入:digits = "23"输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]示例 2:输入:digits = ""输出:[]示例 3:输入:digits = "2"输出:["a","b","c"]提..原创 2021-08-28 22:25:00 · 9726 阅读 · 0 评论 -
【LeetCode】42. 接雨水【动态规划】【双指针】
题目链接:https://leetcode-cn.com/problems/trapping-rain-water/题目介绍给定n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。测试数据示例 1:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。示例...原创 2021-08-27 23:38:18 · 9776 阅读 · 0 评论 -
【LeetCode】279. 完全平方数 【动态规划】【四平方和定理】
题目链接:https://leetcode-cn.com/problems/perfect-squares/题目介绍给定正整数n,找到若干个完全平方数(比如1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。给你一个整数 n ,返回和为 n 的完全平方数的 最少数量 。完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。测试用例...原创 2021-08-25 22:22:00 · 11553 阅读 · 0 评论 -
【LeetCode】739. 每日温度【单调栈】
题目链接:https://leetcode-cn.com/problems/daily-temperatures/题目介绍请根据每日 气温 列表 temperatures,请计算在每一天需要等几天才会有更高的温度。如果气温在这之后都不会升高,请在该位置用0 来代替。测试样例示例 1:输入: temperatures = [73,74,75,71,69,72,76,73]输出:[1,1,4,2,1,1,0,0]示例 2:输入: temperatures = [30...原创 2021-08-24 21:50:32 · 11448 阅读 · 0 评论 -
【LeetCode】287. 寻找重复数【快慢指针】
题目链接:https://leetcode-cn.com/problems/find-the-duplicate-number/题目介绍给定一个包含n + 1 个整数的数组nums ,其数字都在 1 到 n之间(包括 1 和 n),可知至少存在一个重复的整数。假设 nums 只有 一个重复的整数 ,找出 这个重复的数 。你设计的解决方案必须不修改数组 nums 且只用常量级 O(1) 的额外空间。测试用例示例 1:输入:nums = [1,3,4,2,2]输出:...原创 2021-08-24 21:22:41 · 11655 阅读 · 1 评论 -
【LeetCode】647. 回文子串【动态规划】【中心扩展】
题目链接:https://leetcode-cn.com/problems/palindromic-substrings/题目介绍给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。测试用例示例 1:输入:"abc"输出:3解释:三个回文子串: "a", "b", "c"示例 2:输入:"aaa"输出:6解释:6个回文子串: "a", "a", "a", "aa", "a.原创 2021-08-24 20:06:37 · 11528 阅读 · 0 评论 -
【LeetCode】236. 二叉树的最近公共祖先
题目链接:https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/题目描述给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”测试用例示例 1:输入:root = [3,5,1,6,2,0,8,n.原创 2021-08-22 19:41:17 · 11279 阅读 · 0 评论 -
【LeetCode】312. 戳气球 【记忆化搜索】【动态规划】
题目链接:https://leetcode-cn.com/problems/burst-balloons/题目描述有 n 个气球,编号为0 到 n - 1,每个气球上都标有一个数字,这些数字存在数组nums中。现在要求你戳破所有的气球。戳破第 i 个气球,你可以获得nums[i - 1] * nums[i] * nums[i + 1] 枚硬币。这里的 i - 1 和 i + 1 代表和i相邻的两个气球的序号。如果 i - 1或 i + 1 超出了数组的边界,那么就当它是一个数字...原创 2021-08-21 21:56:12 · 11440 阅读 · 1 评论 -
【LeetCode】96. 不同的二叉搜索树【卡特兰数】
题目链接:https://leetcode-cn.com/problems/unique-binary-search-trees/题目描述给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。测试用例示例 1:输入:n = 3输出:5示例 2:输入:n = 1输出:1提示:1 <= n <= 19题解方法一:动态规划定一个有序序列 1 ⋯ n,为了构建出一.原创 2021-08-21 17:08:33 · 11574 阅读 · 0 评论 -
【LeetCode】208. 实现 Trie (前缀树)
题目链接:https://leetcode-cn.com/problems/implement-trie-prefix-tree/题目描述Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。请你实现 Trie 类:Trie() 初始化前缀树对象。void insert(String word) 向前缀树中插入字符串 word 。boolean search(String wo原创 2021-08-20 22:04:56 · 11500 阅读 · 0 评论 -
【LeetCode】238. 除自身以外数组的乘积
题目链接:https://leetcode-cn.com/problems/product-of-array-except-self/题目描述给你一个长度为n的整数数组nums,其中n > 1,返回输出数组output,其中 output[i]等于nums中除nums[i]之外其余各元素的乘积。测试用例示例:输入: [1,2,3,4]输出: [24,12,8,6]提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在...原创 2021-08-20 21:09:22 · 11936 阅读 · 0 评论 -
【LeetCode】39. 组合总和【回溯+剪枝】
题目链接:https://leetcode-cn.com/problems/combination-sum/题目描述给定一个无重复元素的正整数数组candidates和一个正整数target,找出candidates中所有可以使数字和为目标数target的唯一组合。candidates中的数字可以无限制重复被选取。如果至少一个所选数字数量不同,则两种组合是唯一的。对于给定的输入,保证和为target 的唯一组合数少于 150 个。测试用例示例1:输入...原创 2021-08-16 20:36:46 · 12893 阅读 · 0 评论 -
【LeetCode】48. 旋转图像【两次翻转】
题目链接:https://leetcode-cn.com/problems/rotate-image/题目描述给定一个 n×n 的二维矩阵matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。测试样例示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]示例 2:输入:m...原创 2021-08-16 17:14:31 · 12244 阅读 · 0 评论 -
【LeetCode】14. 最长公共前缀 【纵向扫描】
题目链接:https://mp.youkuaiyun.com/mp_blog/creation/editor题目介绍编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。测试样例示例 1:输入:strs = ["flower","flow","flight"]输出:"fl"示例 2:输入:strs = ["dog","racecar","car"]输出:""解释:输入不存在公共前缀。提示:1 <= strs.length &...原创 2021-08-14 22:53:23 · 12200 阅读 · 0 评论 -
【LeetCode】720. 词典中最长的单词 【前缀树】
题目链接:https://leetcode-cn.com/problems/longest-word-in-dictionary/难度:(中等)题目描述给出一个字符串数组words组成的一本英语词典。从中找出最长的一个单词,该单词是由words词典中其他单词逐步添加一个字母组成。若其中有多个可行的答案,则返回答案中字典序最小的单词。若无答案,则返回空字符串。测试样例示例 1:输入:words = ["w","wo","wor","worl", "world"]输出:.原创 2021-08-14 19:54:12 · 12623 阅读 · 0 评论 -
【LeetCode】496. 下一个更大元素 I 【单调栈】
题目链接:难度:题目描述给你两个 没有重复元素 的数组nums1 和nums2,其中nums1是nums2的子集。请你找出 nums1中每个元素在nums2中的下一个比其大的值。nums1中数字x的下一个更大元素是指x在nums2中对应位置的右边的第一个比x大的元素。如果不存在,对应位置输出 -1 。测试用例示例 1:输入: nums1 = [4,1,2], nums2 = [1,3,4,2].输出: [-1,3,-1]解释:...原创 2021-08-02 17:56:51 · 13409 阅读 · 0 评论 -
【LeetCode】463. 岛屿的周长
题目链接:https://leetcode-cn.com/problems/island-perimeter/难度:简单题目描述给定一个 row x col 的二维网格地图 grid ,其中:grid[i][j] = 1 表示陆地, grid[i][j] = 0 表示水域。网格中的格子 水平和垂直 方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相.原创 2021-08-02 17:42:56 · 14013 阅读 · 2 评论 -
【LeetCode】453. 最小操作次数使数组元素相等
题目链接:https://leetcode-cn.com/problems/minimum-moves-to-equal-array-elements/难度:简单题目描述给定一个长度为 n 的 非空 整数数组,每次操作将会使 n - 1 个元素增加 1。找出让数组所有元素相等的最小操作次数。测试用例示例:输入:[1,2,3]输出:3解释:只需要3次操作(注意每次操作会增加两个元素的值):[1,2,3] => [2,3,3] => [3,4,3]...原创 2021-08-02 14:42:07 · 13267 阅读 · 0 评论 -
【LeetCode】448. 找到所有数组中消失的数字 【Hash】
题目描述:https://leetcode-cn.com/problems/find-all-numbers-disappeared-in-an-array/难度:简单题目描述给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。测试用例示例 1:输入:nums = [4,3,2,7,8,2,3,1]输出:[5,6]示例 2:输入:.原创 2021-07-31 21:38:41 · 13353 阅读 · 0 评论 -
【LeetCode】349. 两个数组的交集 & 350. 两个数组的交集 II
349. 两个数组的交集题目链接:https://leetcode-cn.com/problems/intersection-of-two-arrays/难度:简单题目描述给定两个数组,编写一个函数来计算它们的交集。测试用例示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]说明:输出结果中的每个元素一定是唯原创 2021-07-31 20:45:26 · 13197 阅读 · 0 评论 -
【LeetCode】303. 区域和检索 - 数组不可变 【前缀和】
题目链接:https://leetcode-cn.com/problems/range-sum-query-immutable/难度:简单题目描述给定一个整数数组 nums,求出数组从索引i到j(i≤j)范围内元素的总和,包含i、j两点。实现 NumArray 类:NumArray(int[] nums) 使用数组 nums 初始化对象int sumRange(int i, int j) 返回数组 nums 从索引i到j(i≤j)范围内元素的总和,包含...原创 2021-07-31 20:06:35 · 13282 阅读 · 0 评论 -
【LeetCode】283. 移动零
题目链接:https://leetcode-cn.com/problems/move-zeroes/难度:简单题目描述给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。测试用例输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。题解使用双指针,左指针指向当前已经处理好的序列的尾部,右指针指向待处理序列的头部。右指针不断向右移动,每次.原创 2021-07-31 16:58:34 · 13255 阅读 · 0 评论 -
【LeetCode】268. 丢失的数字 【异或 / 高斯公式】
题目链接:https://leetcode-cn.com/problems/missing-number/难度:简单题目描述给定一个包含 [0, n]中n个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。进阶:你能否实现线性时间复杂度、仅使用额外常数空间的算法解决此问题?测试用例示例 1:输入:nums = [3,0,1]输出:2解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因...原创 2021-07-31 16:41:31 · 13384 阅读 · 0 评论 -
【LeetCode】2. 两数相加
给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807/** * Definition for singly-...原创 2020-11-26 21:42:01 · 27090 阅读 · 1 评论 -
【LeetCode】290. 单词规律 【哈希】
题目链接:难度:题目描述给定一种规律 pattern和一个字符串str,判断 str 是否遵循相同的规律。这里的遵循指完全匹配,例如,pattern里的每个字母和字符串str中的每个非空单词之间存在着双向连接的对应规律。测试用例示例1:输入: pattern = "abba", str = "dog cat cat dog"输出: true示例 2:输入:pattern = "abba", str = "dog cat cat fish"输出...原创 2020-12-16 21:58:21 · 26682 阅读 · 0 评论 -
【LeetCode】389. 找不同 【三种方法】
题目链接:难度:题目描述给定两个字符串 s 和 t,它们只包含小写字母。字符串t由字符串s随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。测试用例示例 1:输入:s = "abcd", t = "abcde"输出:"e"解释:'e' 是那个被添加的字母。示例 2:输入:s = "", t = "y"输出:"y"示例 3:输入:s = "a", t = "aa"输出:"a"示例 4:输入:s = "ae", t = "...原创 2020-12-18 14:12:14 · 27227 阅读 · 0 评论 -
【LeetCode】976. 三角形的最大周长
题目链接:https://leetcode-cn.com/problems/largest-perimeter-triangle/给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。如果不能形成任何面积不为零的三角形,返回0。示例 1:输入:[2,1,2]输出:5示例 2:输入:[1,2,1]输出:0示例 3:输入:[3,2,3,4]输出:10示例 4:输入:[3,6,2,3]输出:8提示:3 <...原创 2020-11-29 20:42:32 · 27101 阅读 · 3 评论 -
【LeetCode】217. 存在重复元素 【排序+异或 / 哈希】
题目链接:https://leetcode-cn.com/problems/contains-duplicate/难度:简单题目描述给定一个整数数组,判断是否存在重复元素。如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。测试用例示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例3:输入: [1,1,1,3,3,4,3,2,4,2]输出..原创 2020-12-13 16:02:55 · 26675 阅读 · 0 评论 -
【LeetCode】842. 将数组拆分成斐波那契序列【回溯+剪枝】
题目描述给定一个数字字符串 S,比如 S = "123456579",我们可以将它分成斐波那契式的序列 [123, 456, 579]。形式上,斐波那契式序列是一个非负整数列表 F,且满足:0 <= F[i] <= 2^31 - 1,(也就是说,每个整数都符合 32 位有符号整数类型);F.length >= 3;对于所有的0 <= i < F.length - 2,都有 F[i] + F[i+1] = F[i+2] 成立。另外,请注意,将字符串拆分成小块时原创 2020-12-08 21:28:37 · 26742 阅读 · 1 评论 -
【LeetCode】1232. 缀点成线
题目链接:https://leetcode-cn.com/problems/check-if-it-is-a-straight-line/难度:简单题目描述在一个XY 坐标系中有一些点,我们用数组coordinates来分别记录它们的坐标,其中coordinates[i] = [x, y]表示横坐标为 x、纵坐标为 y的点。请你来判断,这些点是否在该坐标系中属于同一条直线上,是则返回 true,否则请返回 false。测试用例示例 1:输入:coordina...原创 2021-01-17 22:18:47 · 26088 阅读 · 2 评论 -
【LeetCode】649. Dota2 参议院 【简单模拟】
题目链接:https://leetcode-cn.com/problems/dota2-senate/难度:中等题目描述Dota2 的世界里有两个阵营:Radiant(天辉)和Dire(夜魇)Dota2 参议院由来自两派的参议员组成。现在参议院希望对一个 Dota2 游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中,每一位参议员都可以行使两项权利中的一项:禁止一名参议员的权利:参议员可以让另一位参议员在这一轮和随后的几轮中丧失所有的权利。宣布胜利:...原创 2020-12-11 19:23:43 · 26790 阅读 · 0 评论 -
【LeetCode】455. 分发饼干 【排序+贪心】
题目链接:https://leetcode-cn.com/problems/assign-cookies/solution/难度:简单题目描述假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j]。如果 s[j]>= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,...原创 2020-12-27 00:46:48 · 26771 阅读 · 0 评论 -
【LeetCode】605. 种花问题 【贪心】
题目链接:https://leetcode-cn.com/problems/can-place-flowers/难度:简单题目描述假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给你一个整数数组flowerbed 表示花坛,由若干 0 和 1 组成,其中 0 表示没种植花,1 表示种植了花。另有一个数n ,能否在不打破种植规则的情况下种入n朵花?能则返回 true ,不能则返回 false。测试用例...原创 2021-01-02 20:28:50 · 26634 阅读 · 0 评论 -
【LeetCode】62. 不同路径【DP】/【组合数】
题目链接:https://leetcode-cn.com/problems/unique-paths/难度:中等题目描述一个机器人位于一个 m x n网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?测试用例示例 1:输入:m = 3, n = 7输出:28示例 2:输入:m = 3, n = 2输出:3解释:从..原创 2020-12-09 13:23:50 · 26758 阅读 · 0 评论 -
【LeetCode】714. 买卖股票的最佳时机含手续费 【动态规划】
题目链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/难度:中等题目描述给定一个整数数组prices,其中第i个元素代表了第i天的股票价格 ;非负整数fee 代表了交易股票的手续费用。你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。返回获得利润的最大值。注意:这里的一笔交...原创 2020-12-18 00:44:18 · 26738 阅读 · 0 评论