![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
子墨777
Try to make yourself more excellent!
展开
-
二叉树的中序遍历
【代码】二叉树的中序遍历。原创 2024-04-01 15:19:32 · 104 阅读 · 0 评论 -
01 背包问题
有N件物品和一个容量是V的背包。每件物品只能使用一次。第i件物品的体积是vi,价值是wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有N行,每行两个整数vi,wi,用空格隔开,分别表示第i件物品的体积和价值。...原创 2020-03-28 10:46:41 · 168 阅读 · 0 评论 -
101. 对称二叉树
101. 对称二叉树给定一个二叉树,检查它是否是镜像对称的。例如,二叉树[1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个[1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3/** * Definition for a binary tree node. * struct TreeNod...原创 2020-05-13 21:09:08 · 294 阅读 · 0 评论 -
94. 二叉树的中序遍历
94. 二叉树的中序遍历给定一个二叉树,返回它的中序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]进阶:递归算法很简单,你可以通过迭代算法完成吗?/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right;...原创 2020-05-13 20:21:04 · 138 阅读 · 0 评论 -
98. 验证二叉搜索树
98. 验证二叉搜索树给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。示例1:输入: 2 / \ 1 3输出: true示例2:输入: 5 / \ 1 4 / \ 3 6输出: false解释: 输入为: [5,1,4,null,null,3,6]...原创 2020-05-13 16:16:28 · 191 阅读 · 0 评论 -
63. 不同路径 II
63. 不同路径 II一个机器人位于一个m x n网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用1和0来表示。说明:m和n的值均不超过 100。示例...原创 2020-05-06 10:47:01 · 123 阅读 · 0 评论 -
120. 三角形最小路径和
120. 三角形最小路径和给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为11(即,2+3+5+1= 11)。说明:如果你可以只使用O(n)的额外空间(n为三角形的总行数)来解决这个...原创 2020-05-04 14:56:55 · 187 阅读 · 0 评论 -
53. 最大子序和
53. 最大子序和给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。class Solution {p...原创 2020-05-04 14:06:38 · 108 阅读 · 0 评论 -
79. 单词搜索
79. 单词搜索给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例:board =[ ['A','B','C','E'], ['S','F','C','S'], ['A','D','E','E']]给定 ...原创 2020-05-03 15:42:33 · 130 阅读 · 0 评论 -
341. 扁平化嵌套列表迭代器
341. 扁平化嵌套列表迭代器给你一个嵌套的整型列表。请你设计一个迭代器,使其能够遍历这个整型列表中的所有整数。列表中的每一项或者为一个整数,或者是另一个列表。其中列表的元素也可能是整数或是其他列表。示例 1:输入: [[1,1],2,[1,1]]输出: [1,1,2,1,1]解释: 通过重复调用next 直到hasNext 返回 false,next返回的元素的...原创 2020-05-02 15:16:42 · 121 阅读 · 0 评论 -
394. 字符串解码
394. 字符串解码给定一个经过编码的字符串,返回它解码后的字符串。编码规则为:k[encoded_string],表示其中方括号内部的encoded_string正好重复k次。注意k保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数k,例如不会...原创 2020-05-02 14:49:08 · 158 阅读 · 0 评论 -
93. 复原IP地址
93. 复原IP地址给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。示例:输入: "25525511135"输出: ["255.255.11.135", "255.255.111.35"]class Solution {public: vector<string> ans; vector<int> path...原创 2020-04-29 13:57:36 · 186 阅读 · 0 评论 -
257. 二叉树的所有路径
257. 二叉树的所有路径给定一个二叉树,返回所有从根节点到叶子节点的路径。说明:叶子节点是指没有子节点的节点。示例:输入: 1 / \2 3 \ 5输出: ["1->2->5", "1->3"]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3/** * Definition f...原创 2020-04-29 13:06:18 · 99 阅读 · 0 评论 -
77. 组合
77. 组合给定两个整数n和k,返回 1 ...n中所有可能的k个数的组合。示例:输入:n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]class Solution {public: vector<vector<int>> re...原创 2020-04-29 11:00:32 · 117 阅读 · 0 评论 -
784. 字母大小写全排列
784. 字母大小写全排列给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。示例:输入: S = "a1b2"输出: ["a1b2", "a1B2", "A1b2", "A1B2"]输入: S = "3z4"输出: ["3z4", "3Z4"]输入: S = "12345"输出: ["12345"]注意...原创 2020-04-29 10:24:29 · 172 阅读 · 0 评论 -
200. 岛屿数量
200. 岛屿数量给你一个由'1'(陆地)和'0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:11110110101100000000输出:1示例2:输入:1100011000001000001...原创 2020-04-28 22:17:18 · 274 阅读 · 0 评论 -
733. 图像渲染
有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间。给你一个坐标(sr, sc)表示图像渲染开始的像素值(行 ,列)和一个新的颜色值newColor,让你重新上色这幅图像。为了完成上色工作,从初始坐标开始,记录初始坐标的上下左右四个方向上像素值与初始坐标相同的相连像素点,接着再记录这四个方向上符合条件的像素点与他们对应四个方向上像素值与...原创 2020-04-28 20:19:56 · 312 阅读 · 0 评论 -
111. 二叉树的最小深度
111. 二叉树的最小深度难度简单245收藏分享切换为英文关注反馈给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2....原创 2020-04-28 19:42:44 · 133 阅读 · 0 评论 -
111. 二叉树的最小深度
111. 二叉树的最小深度难度简单245收藏分享切换为英文关注反馈给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7/** * Defi...原创 2020-04-28 14:37:59 · 122 阅读 · 0 评论 -
92. 反转链表 II
92. 反转链表 II反转从位置m到n的链表。请使用一趟扫描完成反转。说明:1 ≤m≤n≤ 链表长度。示例:输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL/** * Definition for sin...原创 2020-04-25 12:25:38 · 94 阅读 · 1 评论 -
206. 反转链表
206. 反转链表反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?/** * Definition for singly-linked list. * struct List...原创 2020-04-24 15:59:47 · 71 阅读 · 0 评论 -
206. 反转链表
206. 反转链表反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?/** * Definition for singly-linked list. * struc...原创 2020-04-24 15:43:07 · 78 阅读 · 0 评论 -
24. 两两交换链表中的节点
24. 两两交换链表中的节点难度中等474收藏分享切换为英文关注反馈给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3./** * Definition for singly-linked ...原创 2020-04-24 15:21:40 · 97 阅读 · 0 评论 -
61. 旋转链表
61. 旋转链表给定一个链表,旋转链表,将链表每个节点向右移动k个位置,其中k是非负数。示例1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋...原创 2020-04-23 13:27:22 · 119 阅读 · 0 评论 -
83. 删除排序链表中的重复元素
83. 删除排序链表中的重复元素难度简单293收藏分享切换为英文关注反馈给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例1:输入: 1->1->2输出: 1->2示例2:输入: 1->1->2->3->3输出: 1->2->3/** * Definition for sing...原创 2020-04-23 10:52:16 · 112 阅读 · 0 评论 -
149. 直线上最多的点数 没有通过---
149. 直线上最多的点数难度困难132收藏分享切换为英文关注反馈给定一个二维平面,平面上有n个点,求最多有多少个点在同一条直线上。示例 1:输入: [[1,1],[2,2],[3,3]]输出: 3解释:^|| o| o| o +------------->0 1 2 3 4示例2:输入: [[1,1],...原创 2020-04-21 15:25:26 · 98 阅读 · 0 评论 -
554. 砖墙
554. 砖墙难度中等68收藏分享切换为英文关注反馈你的面前有一堵方形的、由多行砖块组成的砖墙。这些砖块高度相同但是宽度不同。你现在要画一条自顶向下的、穿过最少砖块的垂线。砖墙由行的列表表示。 每一行都是一个代表从左至右每块砖的宽度的整数列表。如果你画的线只是从砖块的边缘经过,就不算穿过这块砖。你需要找出怎样画才能使这条线穿过的砖块数量最少,并且返回穿过的砖块数量。你不能沿着...原创 2020-04-21 11:13:26 · 138 阅读 · 0 评论 -
290. 单词规律
290. 单词规律给定一种规律pattern和一个字符串str,判断str是否遵循相同的规律。这里的遵循指完全匹配,例如,pattern里的每个字母和字符串str中的每个非空单词之间存在着双向连接的对应规律。示例1:输入: pattern = "abba", str = "dog cat cat dog"输出: true示例 2:输入:p...原创 2020-04-21 10:41:27 · 73 阅读 · 0 评论 -
652. 寻找重复的子树
652. 寻找重复的子树难度中等100收藏分享切换为英文关注反馈给定一棵二叉树,返回所有重复的子树。对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可。两棵树重复是指它们具有相同的结构以及相同的结点值。示例 1: 1 / \ 2 3 / / \ 4 2 4 / 4...原创 2020-04-20 16:51:52 · 116 阅读 · 0 评论 -
350. 两个数组的交集 II
350. 两个数组的交集 II难度简单263收藏分享切换为英文关注反馈给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [4,9]说明:输出结果中每个元素出现的次数,...原创 2020-04-20 15:19:37 · 200 阅读 · 0 评论 -
347. Hash 前 K 个高频元素
347. 前 K 个高频元素难度中等315收藏分享切换为英文关注反馈给定一个非空的整数数组,返回其中出现频率前k高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]说明:你可以假设给定的k总是合理的,且 1 ≤ k ≤ 数组中不相同的元...原创 2020-04-20 14:40:28 · 88 阅读 · 0 评论 -
187. hash 重复的DNA序列
187. 重复的DNA序列所有 DNA 都由一系列缩写为 A,C,G 和 T 的核苷酸组成,例如:“ACGAATTCCG”。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助。编写一个函数来查找 DNA 分子中所有出现超过一次的 10 个字母长的序列(子串)。示例:输入:s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"输出:["AA...原创 2020-04-17 22:39:25 · 142 阅读 · 0 评论 -
525. HASH 连续数组
525. 连续数组给定一个二进制数组, 找到含有相同数量的 0 和 1 的最长连续子数组(的长度)。示例 1:输入: [0,1]输出: 2说明: [0, 1] 是具有相同数量0和1的最长连续子数组。示例 2:输入: [0,1,0]输出: 2说明: [0, 1] (或 [1, 0]) 是具有相同数量0和1的最长连续子数组。class Solut...原创 2020-04-17 22:17:47 · 112 阅读 · 0 评论 -
560. HASH 解法 和为K的子数组
560. 和为K的子数组给定一个整数数组和一个整数k,你需要找到该数组中和为k的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 :数组的长度为 [1, 20,000]。 数组中元素的范围是 [-1000, 1000] ,且整数k的范围是[-1e7, 1e7]。...原创 2020-04-17 15:53:46 · 115 阅读 · 0 评论 -
454. 使用hash 四数相加 II
454. 四数相加 II给定四个包含整数的数组列表A , B , C , D ,计算有多少个元组 (i, j, k, l),使得A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度N,且 0 ≤ N ≤ 500 。所有整数的范围在 -228 到 228 - 1 之间,最终结果不会超过231 - 1 。例如:...原创 2020-04-17 15:16:35 · 116 阅读 · 0 评论 -
376. 贪心算法 摆动序列
376. 摆动序列如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。例如,[1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3)是正负交替出现的。相反, [1,4,7,2,5]和[1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个...原创 2020-04-17 13:56:14 · 315 阅读 · 0 评论 -
45. 贪心算法 跳跃游戏 II
45. 跳跃游戏 II给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。示例:输入: [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳1步,然后跳3步到达数组的最后一个位置。说明...原创 2020-04-14 14:11:09 · 318 阅读 · 0 评论 -
55. 贪心算法 跳跃游戏
55. 跳跃游戏给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例1:输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。示例2:输入: [3,2,1,0,4]输出: f...原创 2020-04-14 13:37:30 · 105 阅读 · 0 评论 -
455. 贪心算法 分发饼干
class Solution {public: int findContentChildren(vector<int>& g, vector<int>& s) { sort (g.begin(),g.end());// g 为 孩子的胃口大小 sort (s.begin(),s.end());// s 为饼干的大小 ...原创 2020-04-14 13:09:27 · 255 阅读 · 0 评论 -
392. 判断子序列
392. 判断子序列给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是...原创 2020-04-14 10:58:07 · 96 阅读 · 0 评论