Leetcode刷题笔记
文章平均质量分 61
lunan0320
网络空间安全专业在读,博客主要用于记录学习中的一些有趣的东西
涉及比较广泛:安全、CTF、开发、密码学、刷题心得、体系结构等
Welcome to the blog of lunan~
展开
-
226. 翻转二叉树(二叉树)(Leetcode刷题笔记)
226. 翻转二叉树(二叉树)(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录226. 翻转二叉树(二叉树)(Leetcode刷题笔记)题目解题代码 C++(深度遍历-递归)解题代码 C++(深度遍历-迭代)解题代码C++(层序遍历)算法效率题目给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。示例 1:输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]示例 2:原创 2022-02-10 13:07:22 · 135 阅读 · 0 评论 -
107. 二叉树的层序遍历 II(二叉树)(Leetcode刷题笔记)
107. 二叉树的层序遍历 II(二叉树)(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录107. 二叉树的层序遍历 II(二叉树)(Leetcode刷题笔记)题目解题代码 C++算法效率题目给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)示例 1:输入:root = [3,9,20,null,null,15,7]输出:[[15,7],[9,2原创 2022-02-10 11:42:09 · 442 阅读 · 0 评论 -
102. 二叉树的层序遍历(二叉树)(Leetcode刷题笔记)
102. 二叉树的层序遍历(二叉树)(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录102. 二叉树的层序遍历(二叉树)(Leetcode刷题笔记)题目解题代码 C++(队列)算法效率题目给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。示例 1:输入:root = [3,9,20,null,null,15,7]输出:[[3],[9,20],[15,7]]示例 2:输原创 2022-02-10 11:27:53 · 334 阅读 · 0 评论 -
145. 二叉树的后序遍历(二叉树)(Leetcode刷题笔记)
145. 二叉树的后序遍历(二叉树)(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录145. 二叉树的后序遍历(二叉树)(Leetcode刷题笔记)题目解题代码 C++(递归)解题代码 C++(迭代)算法效率题目给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。示例 1:输入:root = [1,null,2,3]输出:[3,2,1]示例 2:输入:root = []输出:[]示例 3:输入原创 2022-02-10 00:23:53 · 478 阅读 · 0 评论 -
94. 二叉树的中序遍历(二叉树)(Leetcode刷题笔记)
94. 二叉树的中序遍历(二叉树)(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录94. 二叉树的中序遍历(二叉树)(Leetcode刷题笔记)题目解题思路 C++(递归法)解题思路 C++(迭代法)算法效率题目给定一个二叉树的根节点 root ,返回它的 中序 遍历。示例 1:输入:root = [1,null,2,3]输出:[1,3,2]示例 2:输入:root = []输出:[]示例 3:输入:ro原创 2022-02-10 00:09:16 · 142 阅读 · 0 评论 -
144. 二叉树的前序遍历(二叉树)(Leetcode刷题笔记)
144. 二叉树的前序遍历(二叉树)(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录144. 二叉树的前序遍历(二叉树)(Leetcode刷题笔记)题目解题代码 C++ (递归)解题代码 C++(迭代法)算法效率题目给你二叉树的根节点 root ,返回它节点值的 前序 遍历。示例 1:输入:root = [1,null,2,3]输出:[1,2,3]示例 2:输入:root = []输出:[]示例 3:输入原创 2022-02-09 23:33:08 · 462 阅读 · 0 评论 -
239. 滑动窗口最大值(栈与队列)(Leetcode刷题笔记)
239. 滑动窗口最大值(栈与队列)(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录239. 滑动窗口最大值(栈与队列)(Leetcode刷题笔记)题目解题代码 C++(核心代码)解题代码 C++(本地编译运行)算法效率题目给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回 滑动窗口中的最大值 。示例 1:输入:nu原创 2022-02-09 11:57:09 · 115 阅读 · 0 评论 -
150. 逆波兰表达式求值(栈与队列)(Leetcode刷题笔记)
150. 逆波兰表达式求值(栈与队列)(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录150. 逆波兰表达式求值(栈与队列)(Leetcode刷题笔记)题目解题代码 C++(核心代码)解题代码(本地编译运行)算法效率题目根据 逆波兰表示法,求表达式的值。有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。注意 两个整数之间的除法只保留整数部分。可以保证给定的逆波兰表达式总是有效的。换句话说,表原创 2022-02-08 16:36:25 · 390 阅读 · 1 评论 -
20. 有效的括号(栈与队列)(Leetcode刷题笔记)
20. 有效的括号(栈与队列)(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录20. 有效的括号(栈与队列)(Leetcode刷题笔记)题目解题代码 C++(核心代码)解题代码(本地编译运行)算法效率题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = “()”输出:原创 2022-02-08 15:33:42 · 346 阅读 · 0 评论 -
225. 用队列实现栈(栈与队列)(Leetcode刷题笔记)
225. 用队列实现栈(栈与队列)(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录225. 用队列实现栈(栈与队列)(Leetcode刷题笔记)题目解题代码 C++ (双队列实现栈)解题思路 C++(单队列实现栈)算法效率题目请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。实现 MyStack 类:void push(int x) 将元素 x 压入栈顶。原创 2022-02-08 14:49:07 · 353 阅读 · 0 评论 -
232. 用栈实现队列(栈与队列)(Leetcode刷题笔记)
232. 用栈实现队列(栈与队列)(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录232. 用栈实现队列(栈与队列)(Leetcode刷题笔记)题目解题代码 C++(核心代码)解题代码 C++(本地编译运行)算法效率题目请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int po原创 2022-02-08 14:01:12 · 342 阅读 · 0 评论 -
151. 翻转字符串里的单词(字符串 双指针法)(Leetcode刷题笔记)
151. 翻转字符串里的单词(字符串 双指针法)(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录151. 翻转字符串里的单词(字符串 双指针法)(Leetcode刷题笔记)题目解题代码 C++ (双指针法)算法效率题目给你一个字符串 s ,逐个翻转字符串中的所有 单词 。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。请你返回一个翻转 s 中单词顺序并用单个空格相连的字符串。说明:输入字符原创 2022-02-06 13:50:33 · 92 阅读 · 0 评论 -
剑指 Offer 05. 替换空格(字符串 双指针法)(Leetcode刷题笔记)
剑指 Offer 05. 替换空格(字符串)(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录剑指 Offer 05. 替换空格(字符串)(Leetcode刷题笔记)题目解题代码 C++算法效率题目请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”解题代码 C++解题思路: 先计算空格数,然后resize()方法原创 2022-02-06 12:50:27 · 326 阅读 · 0 评论 -
541. 反转字符串 II(字符串)(Leetcode刷题笔记)
541. 反转字符串 II(字符串)(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录541. 反转字符串 II(字符串)(Leetcode刷题笔记)题目解题代码 C++算法效率题目给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。原创 2022-02-06 12:29:39 · 489 阅读 · 0 评论 -
18. 四数之和(双指针法)(Leetcode刷题笔记)
18. 四数之和(双指针法)(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录18. 四数之和(双指针法)(Leetcode刷题笔记)题目解题代码 C++(核心代码)解题代码 C++(本地编译运行)算法效率题目给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则原创 2022-02-06 09:34:10 · 114 阅读 · 0 评论 -
15. 三数之和(双指针法)(Leetcode刷题笔记)
15. 三数之和(双指针法)(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录15. 三数之和(双指针法)(Leetcode刷题笔记)题目解题代码 C++(核心代码)解题代码 C++(本地编译运行)算法效率题目给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:原创 2022-02-06 09:32:45 · 207 阅读 · 0 评论 -
383. 赎金信(哈希表)(Leetcode刷题笔记)
383. 赎金信(哈希表)(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录383. 赎金信(哈希表)(Leetcode刷题笔记)题目解题代码 C++(哈希表)算法效率算法复杂度改进解题代码 C++(数组哈希表)算法效率题目给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。如果可以,返回 true ;否则返回 false 。magazine 中的每原创 2022-02-06 09:32:20 · 161 阅读 · 0 评论 -
454. 四数相加 II(哈希表)(Leetcode刷题笔记)
454. 四数相加 II(哈希表)(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录454. 四数相加 II(哈希表)(Leetcode刷题笔记)题目解题代码 C++(哈希表)算法效率题目给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足:0 <= i, j, k, l < nnums1[i] + nums2[j] + nu原创 2022-02-05 19:48:45 · 302 阅读 · 0 评论 -
1. 两数之和 (哈希表)(Leetcode刷题笔记)
1. 两数之和 (哈希表)(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录1. 两数之和 (哈希表)(Leetcode刷题笔记)题目解题代码 C++(哈希表)算法效率题目给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例原创 2022-02-05 19:25:49 · 73 阅读 · 0 评论 -
202. 快乐数 (哈希表)(Leetcode刷题笔记)
202. 快乐数 (哈希表)(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录202. 快乐数 (哈希表)(Leetcode刷题笔记)题目解题代码 C++(哈希表)算法效率题目编写一个算法来判断一个数 n 是不是快乐数。「快乐数」 定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1,那么这个数就是快乐数。如果原创 2022-02-05 19:03:51 · 79 阅读 · 0 评论 -
349. 两个数组的交集(哈希表) (Leetcode刷题笔记)
349. 两个数组的交集 (哈希表)(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录349. 两个数组的交集 (哈希表)(Leetcode刷题笔记)题目解题代码 C++(unordered_set)解题代码 C++(unordered_map)算法效率题目给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。示例 1:输入:nums1 = [1,原创 2022-02-05 18:46:18 · 228 阅读 · 0 评论 -
242. 有效的字母异位词 (Leetcode刷题笔记)
242. 有效的字母异位词 (Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录242. 有效的字母异位词 (Leetcode刷题笔记)题目解题代码 C++(数组)解题代码 C++(哈希表)算法效率题目给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。示例 1:输入: s = “anagram”, t = “naga原创 2022-02-05 18:17:10 · 84 阅读 · 0 评论 -
48. 旋转图像 (Leetcode刷题笔记)
48. 旋转图像 (Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录48. 旋转图像 (Leetcode刷题笔记)题目解题代码 C++算法效率题目给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出原创 2022-02-05 17:50:15 · 85 阅读 · 0 评论 -
3. 无重复字符的最长子串(哈希表 滑动窗口)(Leetcode刷题笔记)
3. 无重复字符的最长子串(哈希表 滑动窗口)(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录3. 无重复字符的最长子串(哈希表 滑动窗口)(Leetcode刷题笔记)题目解题代码 C++(核心代码)解题代码 C++(本地编译运行)算法效率题目给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度原创 2022-02-05 12:40:59 · 100 阅读 · 0 评论 -
438. 找到字符串中所有字母异位词(哈希表 滑动窗口)(Leetcode刷题笔记)
438. 找到字符串中所有字母异位词(哈希表 滑动窗口)(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录438. 找到字符串中所有字母异位词(哈希表 滑动窗口)(Leetcode刷题笔记)题目解题代码 C++(核心代码)解题代码 C++(本地编译运行)算法效率题目给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。异位词 指由相同字母重排列形成的字符串(包括相同的字符原创 2022-02-05 12:10:51 · 111 阅读 · 0 评论 -
567. 字符串的排列(哈希表 滑动窗口)(Leetcode刷题笔记)
567. 字符串的排列(哈希表 滑动窗口)(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录567. 字符串的排列(哈希表 滑动窗口)(Leetcode刷题笔记)题目解题代码 C++(核心代码)解题代码 C++(本地编译运行)算法效率题目给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。如果是,返回 true ;否则,返回 false 。换句话说,s1 的排列之一是 s2 的 子串 。示例 1:输原创 2022-02-05 11:40:54 · 125 阅读 · 0 评论 -
76. 最小覆盖子串(哈希表)(Leetcode刷题笔记)
76. 最小覆盖子串(哈希表)(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录76. 最小覆盖子串(哈希表)(Leetcode刷题笔记)题目解题代码 C++(核心代码)解题代码 C++(本地编译运行)算法效率题目给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。注意:对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于原创 2022-02-05 10:55:30 · 112 阅读 · 0 评论 -
904. 水果成篮(Leetcode刷题笔记)
904. 水果成篮(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录904. 水果成篮(Leetcode刷题笔记)题目解题代码 C++(核心代码)解题代码 C++(本地编译运行)算法效率题目你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示,其中 fruits[i] 是第 i 棵树上的水果 种类 。你想要尽可能多地收集水果。然而,农场的主人设定了一些严格的规矩,你必须按照要求采摘水果:你只有原创 2022-02-04 18:08:48 · 1029 阅读 · 0 评论 -
209. 长度最小的子数组(Leetcode刷题笔记)
209. 长度最小的子数组(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录209. 长度最小的子数组(Leetcode刷题笔记)题目解题代码 C++(核心)解题代码 C++(本地编译运行)算法效率题目给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件原创 2022-02-04 17:23:53 · 97 阅读 · 0 评论 -
844. 比较含退格的字符串(Leetcode刷题笔记)
844. 比较含退格的字符串(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录844. 比较含退格的字符串(Leetcode刷题笔记)题目解题代码 C++(核心代码)解题代码 C++(本地编译运行)算法效率题目给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,请你判断二者是否相等。# 代表退格字符。如果相等,返回 true ;否则,返回 false 。注意:如果对空文本输入退格字符,文本继续为空。示例 1:输原创 2022-02-04 13:01:14 · 479 阅读 · 0 评论 -
26. 删除有序数组中的重复项(Leetcode刷题笔记)
26. 删除有序数组中的重复项(Leetcode刷题笔记)欢迎大家访问我的GitHub博客 https://lunan0320.cn文章目录26. 删除有序数组中的重复项(Leetcode刷题笔记)题目解题代码 C++(核心代码)解题代码 C++(本地编译运行)算法效率题目给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什原创 2022-02-04 12:29:33 · 218 阅读 · 0 评论 -
27. 移除元素(Leetcode刷题笔记)
27. 移除元素(Leetcode刷题笔记)文章目录27. 移除元素(Leetcode刷题笔记)题目解题代码C++(核心 双指针法)解题代码C++(本地运行)算法效率题目给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是原创 2022-01-28 13:00:29 · 138 阅读 · 0 评论 -
367. 有效的完全平方数(Leetcode刷题笔记)
367. 有效的完全平方数(Leetcode刷题笔记)文章目录367. 有效的完全平方数(Leetcode刷题笔记)题目解题代码C++(核心代码)解题代码(本地运行)算法效率题目给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。进阶:不要 使用任何内置的库函数,如 sqrt 。示例 1:输入:num = 16输出:true示例 2:输入:num = 14输出:false解题代码C++(核心代码)class原创 2022-01-28 12:22:40 · 385 阅读 · 0 评论 -
69. Sqrt(x)(Leetcode刷题笔记)
69. Sqrt(x)(Leetcode刷题笔记)文章目录69. Sqrt(x)(Leetcode刷题笔记)题目解题代码C++(核心)解题代码C++ (本地运行)算法效率题目给你一个非负整数 x ,计算并返回 x 的 算术平方根 。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。示例 1:输入:x = 4输出:2示例 2:输入:x = 8输出:2解释:8 的算术平方原创 2022-01-28 12:01:19 · 959 阅读 · 0 评论 -
34. 在排序数组中查找元素的第一个和最后一个位置(Leetcode刷题笔记)
34. 在排序数组中查找元素的第一个和最后一个位置(Leetcode刷题笔记)文章目录34. 在排序数组中查找元素的第一个和最后一个位置(Leetcode刷题笔记)题目解题代码 C++(核心代码)解题代码 C++(本地运行)算法效率题目给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。进阶:你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗?示例 1:原创 2022-01-28 11:36:58 · 127 阅读 · 0 评论 -
35. 搜索插入位置(Leetcode刷题笔记)
35. 搜索插入位置(Leetcode刷题笔记)题目给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例 2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 4原创 2022-01-28 10:35:12 · 526 阅读 · 0 评论 -
704. 二分查找(Leetcode刷题笔记 )
704. 二分查找(Leetcode刷题笔记 )文章目录704. 二分查找(Leetcode刷题笔记 )题目解题代码C++(二分法)算法效率题目给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums中并且下标为 4示例 2: 输入: nums =原创 2022-01-27 22:40:55 · 677 阅读 · 0 评论 -
104. 二叉树的最大深度(Leetcode刷题笔记 )
104. 二叉树的最大深度(Leetcode刷题笔记 )文章目录104. 二叉树的最大深度(Leetcode刷题笔记 )题目解题代码C++(普通递归)解题代码C++ (递归 类似最小深度)解题代码C++(BFS)算法效率题目给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],解题代码C++(普通递归)思路:直接分别对左右递归,求最大值即可。cla原创 2022-01-27 22:10:43 · 127 阅读 · 0 评论 -
111. 二叉树的最小深度(Leetcode刷题笔记 )
111. 二叉树的最小深度(Leetcode刷题笔记 )文章目录111. 二叉树的最小深度(Leetcode刷题笔记 )题目解题代码 C++(DFS递归实现)解题代码C++(BFS)算法效率感悟题目给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例 1:输入:root = [3,9,20,null,null,15,7]输出:2示例 2:输入:root = [2,null,3,null,4,null,5,原创 2022-01-27 18:13:41 · 926 阅读 · 0 评论 -
94. 二叉树的中序遍历(Leetcode刷题笔记 )
94. 二叉树的中序遍历(Leetcode刷题笔记 )文章目录94. 二叉树的中序遍历(Leetcode刷题笔记 )题目解题代码C++(递归)解题代码C++(非递归,栈迭代实现中序遍历)算法效率题目给定一个二叉树的根节点 root ,返回它的 中序 遍历。示例 1:输入:root = [1,null,2,3]输出:[1,3,2]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]示例 4:输入:root = [1,2]输原创 2022-01-27 12:41:34 · 366 阅读 · 0 评论