leetcode 437. Path Sum III 路径总和 III(中等)

2022-09-08
阅读 2 分钟
774
一、题目大意给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。示例 1:输入:root = [10,5,-3,3,2,null,11,3,-2,null,1], targetSum = 8输出:3解释...
封面图

leetcode 101. Symmetric Tree 对称二叉树(简单)

2022-09-07
阅读 2 分钟
599
一、题目大意给你一个二叉树的根节点 root , 检查它是否轴对称。示例 1:输入:root = [1,2,2,3,4,4,3]输出:true示例 2:输入:root = [1,2,2,null,3,null,3]输出:false提示:树中节点数目在范围 [1, 1000] 内-100 <= Node.val <= 100进阶:你可以运用递归和迭代两种方法解决这个问题吗?来源:力扣(LeetCode...
封面图

leetcode 114. Flatten Binary Tree to Linked List 二叉树展开为链表(简单)

2022-09-06
阅读 2 分钟
509
展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。
封面图

leetcode 104. Maximum Depth of Binary Tree 二叉树的最大深度(简单)

2022-09-05
阅读 2 分钟
597
一、题目大意给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], {代码...} 返回它的最大深度 3 。来源:力扣(LeetCode)链接:[链接]著作权归领扣网络所有。商业转载请联系官方授权,非商业...
封面图

leetcode 83. Remove Duplicates from Sorted List 删除排序链表中的重复元素(简单)

2022-09-04
阅读 1 分钟
523
一、题目大意给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。示例 1:输入:head = [1,1,2]输出:[1,2]示例 2:输入:head = [1,1,2,3,3]输出:[1,2,3]提示:链表中节点数目在范围 [0, 300] 内-100 <= Node.val <= 100题目数据保证链表已经按升序 排列来源:...
封面图

leetcode 148. Sort List 排序链表(中等)

2022-09-04
阅读 2 分钟
684
一、题目大意给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。示例 1:输入:head = [4,2,1,3]输出:[1,2,3,4]示例 2:输入:head = [-1,5,3,4,0]输出:[-1,0,3,4,5]示例 3:输入:head = []输出:[]提示:链表中节点的数目在范围 [0, 5 * 104] 内-105 <= Node.val <= 105进阶:你可以在 O(n lo...
封面图

leetcode 21. Merge Two Sorted Lists 合并两个有序链表(简单)

2022-09-02
阅读 2 分钟
521
一、题目大意将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]提示:两个链表的节点数目范围是 [0, 50]-100 <= Node...
封面图

leetcode 206. Reverse Linked List 反转链表(简单)

2022-09-01
阅读 2 分钟
511
一、题目大意给你单链表的头节点 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进阶:链表可以选用迭代或递归方式完成反...
封面图

leetcode 409 Longest Palindrome 最长回文串(简单)

2022-08-31
阅读 1 分钟
655
一、题目大意给定一个包含大写字母和小写字母的字符串 s ,返回 通过这些字母构造成的 最长的回文串 。在构造过程中,请注意 区分大小写 。比如 "Aa" 不能当做一个回文字符串。示例 1:输入:s = "abccccdd"输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。示例 2:输入:s = "a"输入:1提示:1 <= s.len...
封面图

leetcode 28. Implement strStr() 实现 strStr()(简单)

2022-08-30
阅读 2 分钟
632
给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。
封面图

leetcode 696. Count Binary Substrings 计数二进制子串(简单)

2022-08-28
阅读 2 分钟
528
给定一个字符串 s,统计并返回具有相同数量 0 和 1 的非空(连续)子字符串的数量,并且这些子字符串中的所有 0 和所有 1 都是成组连续的。
封面图

leetcode 647. Palindromic Substrings回文子串(中等)

2022-08-27
阅读 1 分钟
815
一、题目大意给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。回文字符串 是正着读和倒过来读一样的字符串。子字符串 是字符串中的由连续字符组成的一个序列。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例 1:输入:s = "abc"输出:3解释:三个回文子串: "a...
封面图

leetcode 205. Isomorphic Strings 同构字符串(简单)

2022-08-26
阅读 1 分钟
835
每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。
封面图

leetcode 242. Valid Anagram 有效的字母异位词(简单)

2022-08-25
阅读 1 分钟
495
一、题目大意[链接]给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false提示:1 <= s.length, t.length <= 5 * 10...
封面图

leetcode 594. Longest Harmonious Subsequence 最长和谐子序列(简单).md

2022-08-24
阅读 2 分钟
579
一、题目大意[链接]和谐数组是指一个数组里元素的最大值和最小值之间的差别 正好是 1 。现在,给你一个整数数组 nums ,请你在所有可能的子序列中找到最长的和谐子序列的长度。数组的子序列是一个由数组派生出来的序列,它可以通过删除一些元素或不删除元素、且不改变其余元素的顺序而得到。示例 1:输入:nums = [1,3,2...
封面图

leetcode 697. Degree of an Array 数组的度(简单)

2022-08-23
阅读 2 分钟
636
一、题目大意[链接]给定一个非空且只包含非负数的整数数组 nums,数组的 度 的定义是指数组里任一元素出现频数的最大值。你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。示例 1:输入:nums = [1,2,2,3,1]输出:2解释:输入数组的度是 2 ,因为元素 1 和 2 的出现频数最大,均为 2 。...
封面图

leetcode 503. Next Greater Element II 下一个更大元素 II(中等)

2022-08-22
阅读 2 分钟
605
给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。
封面图

leetcode 560. Subarray Sum Equals K 和为 K 的子数组(中等)

2022-08-21
阅读 1 分钟
446
一、题目大意[链接]给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的连续子数组的个数 。示例 1:输入:nums = [1,1,1], k = 2输出:2示例 2:输入:nums = [1,2,3], k = 3输出:2提示:1 <= nums.length <= 2 * 104-1000 <= nums[i] <= 1000-107 <= k <= 107二、解题思路三个...
封面图

leetcode 225. Implement Stack using Queues 用队列实现栈(简单)

2022-08-19
阅读 2 分钟
314
void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int top() 返回栈顶元素。boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。
封面图

leetcode 304. Range Sum Query 2D - Immutable 二维区域和检索 - 矩阵不可变(中等)

2022-08-18
阅读 2 分钟
437
计算其子矩形范围内元素的总和,该子矩阵的 左上角 为 (row1, col1) ,右下角 为 (row2, col2) 。实现 NumMatrix 类:
封面图

leetcode 303. Range Sum Query - Immutable 区域和检索 - 数组不可变(简单)

2022-08-17
阅读 2 分钟
508
计算索引 left 和 right (包含 left 和 right)之间的 nums 元素的 和 ,其中 left <= right实现 NumArray 类:
封面图

leetcode 128. Longest Consecutive Sequence 最长连续序列(中等)

2022-08-16
阅读 2 分钟
420
一、题目大意[链接]给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。示例 1:输入:nums = [100,4,200,1,3,2]输出:4解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。示例 2:输入:nums = [0,3,7,2,5,8,4,6...
封面图

leetcode 239. Sliding Window Maximum 滑动窗口最大值

2022-08-15
阅读 2 分钟
616
给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。
封面图

leetcode 23. Merge k Sorted Lists 合并K个升序链表(困难)

2022-08-11
阅读 2 分钟
412
一、题目大意标签: 栈和队列[链接]给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例 1:输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[ 1->4->5, 1->3->4, 2->6]将它们合并到一个有序链表中得到。1->...
封面图

leetcode 739. Daily Temperatures 每日温度(中等)

2022-08-10
阅读 2 分钟
968
给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。
封面图

leetcode 20. Valid Parentheses 有效的括号(中等)

2022-08-09
阅读 3 分钟
890
一、题目大意标签: 栈和队列[链接]给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。 示例 1:输入:s = "()"输出:true示例 2:输入:s = "()[]{}"输出:true示例 3:输入:s = "(]"输出:false示例 4...
封面图

leetcode 155. Min Stack最小栈(中等)

2022-08-08
阅读 2 分钟
657
一、题目大意标签: 栈和队列[链接]设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。实现 MinStack 类: {代码...}  示例 1:输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,null,null,-3,null,0,-2]解释:MinStack min...
封面图

leetcode 232. Implement Queue using Stacks 用栈实现队列(简单)

2022-08-07
阅读 2 分钟
729
一、题目大意标签: 栈和队列[链接]请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则...
封面图

leetcode 769. Max Chunks To Make Sorted 最多能完成排序的块(中等)

2022-08-06
阅读 1 分钟
701
一、题目大意标签: 数组[链接]给定一个长度为 n 的整数数组 arr ,它表示在 [0, n - 1] 范围内的整数的排列。我们将 arr 分割成若干 块 (即分区),并对每个块单独排序。将它们连接起来后,使得连接的结果和按升序排序后的原数组相同。返回数组能分成的最多块数量。 示例 1:输入: arr = [4,3,2,1,0]输出: 1解释:将数组分...
封面图

leetcode 240. Search a 2D Matrix II 搜索二维矩阵 II(中等)

2022-08-05
阅读 1 分钟
561
一、题目大意标签:数组[链接]编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例 1:输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5输出:true示例...
封面图