Leetcode
记录在leetcode中的刷题内容,与大家分享解题思路。
husky105
这个作者很懒,什么都没留下…
展开
-
leetcode Re-Space LCCI
Title:Oh, no! You have accidentally removed all spaces, punctuation, and capitalization in a lengthy document. A sentence like “I reset the computer. It still didn’t boot!” became "iresetthecomputeritstilldidntboot’’. You’ll deal with the punctuation and原创 2020-07-09 12:20:31 · 284 阅读 · 0 评论 -
leetcode Diving Board LCCI
leetcode Diving Board LCCITitleYou are building a diving board by placing a bunch of planks of wood end-to-end. There are two types of planks, one of length shorter and one of length longer. You must use exactly K planks of wood. Write a method to genera原创 2020-07-08 14:01:44 · 167 阅读 · 0 评论 -
leetcode Path Sum
TitleGiven a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.Note: A leaf is a node with no children.Example:Given the below binary tree and sum = 22,return t原创 2020-07-07 13:07:47 · 164 阅读 · 0 评论 -
leetcode 136——只出现一次的数字
leetcode 136——只出现一次的数字题目描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/single-number著作权归领扣网络所有。商业转载请联系官方原创 2020-05-14 22:16:18 · 116 阅读 · 0 评论 -
leetcode 217——存在重复元素
leetcode 217——存在重复元素题目描述:给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 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]输出: true来...原创 2020-03-07 21:43:05 · 105 阅读 · 0 评论 -
leetcode 9——回文数
leetcode 9——回文数题目描述:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读,...原创 2020-03-07 21:17:23 · 134 阅读 · 0 评论 -
leetcode 509——斐波那契数列
leetcode 509——斐波那契数列题目描述:斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.给定 N,计算 F(N)。示例 1:输入:2输出:1解释:F(2) = F...原创 2020-03-06 22:32:08 · 121 阅读 · 0 评论 -
leetcode 119——杨辉三角Ⅱ
leetcode 119——杨辉三角Ⅱ题目描述:给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 3输出: [1,3,3,1]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/pascals-triangle-ii著作权...原创 2020-03-06 21:09:34 · 85 阅读 · 0 评论 -
leetcode 118——杨辉三角
leetcode 118——杨辉三角题目描述:给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]提交:递归class Solution {public: vector<vecto...原创 2020-03-06 20:43:39 · 122 阅读 · 0 评论 -
leetcode 24——两两交换链表中的节点
leetcode 24——两两交换链表中的节点题目描述:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/s...原创 2020-03-06 20:07:32 · 102 阅读 · 0 评论 -
leetcode 52——N皇后Ⅱ
leetcode 52——N皇后Ⅱ题目描述:n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。上图为 8 皇后问题的一种解法。给定一个整数 n,返回 n 皇后不同的解决方案的数量。示例:输入: 4输出: 2解释: 4 皇后问题存在如下两个不同的解法。[[".Q…", // 解法 1“…Q”,“Q…”,“…Q.”],["…...原创 2020-03-04 13:34:34 · 149 阅读 · 0 评论 -
leetcode 51——N皇后
leetcode 51——N皇后题目描述:n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。上图为 8 皇后问题的一种解法。给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。示例:输入: 4输出: [[".Q…", /...原创 2020-03-04 13:17:00 · 123 阅读 · 0 评论 -
leetcode 344——翻转字符串
leetcode 344——翻转字符串题目描述:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“...原创 2020-02-29 18:00:42 · 102 阅读 · 0 评论 -
leetcode 2——两数相加
leetcode 2——两数相加题目描述:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 ->...原创 2020-02-23 12:29:29 · 125 阅读 · 0 评论 -
leetcode 136——二叉树的最近公共祖先
leetcode 136——二叉树的最近公共祖先题目描述:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,...原创 2020-02-18 13:56:08 · 106 阅读 · 0 评论 -
leetcode 116——填充每一个节点的下一个右侧节点指针
leetcode 116——填充每一个节点的下一个右侧节点指针题目描述:给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则...原创 2020-02-18 12:11:06 · 97 阅读 · 0 评论 -
leetcode 116——填充每个节点的下一个右侧节点指针
leetcode 116——填充每个节点的下一个右侧节点指针题目描述:给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 ...原创 2020-02-18 11:27:15 · 119 阅读 · 0 评论 -
leetcode 105——从前序遍历和中序遍历序列构造二叉树
leetcode 105——从前序和中序遍历序列构造二叉树题目描述:根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7来源...原创 2020-02-18 00:14:13 · 166 阅读 · 0 评论 -
leetcode 106——从中序与后序遍历序列构造二叉树
leetcode 106——从中序与后序遍历序列构造二叉树题目描述:根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树:3/ 9 20/ 15 7来源:力扣(LeetCode)链接:http...原创 2020-02-17 21:33:56 · 144 阅读 · 0 评论 -
leetcode 101——对称二叉树
leetcode 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说明:如果你可以运用递归和迭代两种方法解决这个问题,会很加分...原创 2020-02-17 17:11:00 · 84 阅读 · 0 评论 -
leetcode 104——二叉树的最大深度
leetcode 104——二叉树的最大深度题目描述:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],返回它的最大深度 3 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maxi...原创 2020-02-17 15:56:38 · 114 阅读 · 0 评论 -
leetcode 102——二叉树的层次遍历
leetcode 102 —— 二叉树的层次遍历题目描述:给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7],返回其层次遍历结果:[[3],[9,20],[15,7]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/bina...原创 2020-02-17 15:10:29 · 130 阅读 · 0 评论 -
leetcode 144——二叉树的前序遍历
leetcode 144——二叉树的前序遍历题目描述:给定一个二叉树,返回它的 前序 遍历。示例:输入: [1,null,2,3]12/3输出: [1,2,3]进阶: 递归算法很简单,你可以通过迭代算法完成吗?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-preorder-traversal...原创 2020-02-13 14:40:50 · 143 阅读 · 0 评论 -
leetcode 94——二叉树的中序遍历
leetcode 94——二叉树的中序遍历题目描述:给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3]12/3输出: [1,3,2]进阶: 递归算法很简单,你可以通过迭代算法完成吗?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal著作权...原创 2020-02-13 14:40:34 · 131 阅读 · 1 评论 -
leetcode 145——二叉数的后序遍历
leetcode 145——二叉数的后序遍历题目描述:给定一个二叉树,返回它的 后序 遍历。示例:输入: [1,null,2,3]12/3输出: [3,2,1]进阶: 递归算法很简单,你可以通过迭代算法完成吗?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-postorder-traversal...原创 2020-02-13 14:40:18 · 104 阅读 · 0 评论 -
leetcode 21——合并两个有序链表
leetcode 21——合并两个有序链表题目描述:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/me...原创 2020-02-11 12:02:30 · 85 阅读 · 0 评论 -
leetcode 707——设计链表
leetcode 707——设计链表题目描述:设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第 i...原创 2020-02-10 23:23:02 · 112 阅读 · 0 评论 -
leetcode234——回文链表
leetcode234——回文链表题目描述:请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/pali...原创 2020-02-10 21:07:50 · 159 阅读 · 0 评论 -
leetcode 328——奇偶链表
leetcode 328——奇偶链表题目描述:给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例 1:输入: 1->2->3->4->5->NULL输...原创 2020-02-10 18:26:22 · 96 阅读 · 0 评论 -
leetcode 203——移除链表元素
leetcode 203——移除链表元素题目描述:删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5提交:/** * Definition for singly-linked list. * struct ListNode ...原创 2020-02-10 16:56:27 · 98 阅读 · 0 评论 -
leetcode 206——翻转链表
leetcode 206——翻转链表题目描述:反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems...原创 2020-02-10 16:19:53 · 159 阅读 · 0 评论 -
leetcode 19——删除链表的倒数第N个结点
leetcode 19——删除链表的倒数第N个结点题目描述:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?来源:力扣(Leet...原创 2020-02-10 15:28:15 · 100 阅读 · 0 评论 -
leetcode 160——相交链表
leetcode 160——相交链表题目描述:编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value...原创 2020-02-10 13:59:06 · 103 阅读 · 0 评论 -
leetcode 142——环形指针Ⅱ
leetcode 142——环形指针Ⅱ题目描述:给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail co...原创 2020-02-10 13:42:22 · 221 阅读 · 0 评论 -
leetcode 542——01矩阵
leetcode 542——01矩阵题目描述:给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。两个相邻元素间的距离为 1 。示例 1:输入:0 0 00 1 00 0 0输出:0 0 00 1 00 0 0示例 2:输入:0 0 00 1 01 1 1输出:0 0 00 1 01 2 1注意:给定矩阵的元素个数不超过 10000。...原创 2020-02-09 16:54:13 · 275 阅读 · 0 评论 -
leetcode 841——钥匙和房间
leetcode 841——钥匙和房间题目描述:有 N 个房间,开始时你位于 0 号房间。每个房间有不同的号码:0,1,2,…,N-1,并且房间里可能有一些钥匙能使你进入下一个房间。在形式上,对于每个房间 i 都有一个钥匙列表 rooms[i],每个钥匙 rooms[i][j] 由 [0,1,…,N-1] 中的一个整数表示,其中 N = rooms.length。 钥匙 rooms[i][j...原创 2020-02-09 16:44:45 · 329 阅读 · 0 评论 -
leetcode 733——图像渲染
leetcode 733——图像渲染题目描述:有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间。给你一个坐标 (sr, sc) 表示图像渲染开始的像素值(行 ,列)和一个新的颜色值 newColor,让你重新上色这幅图像。为了完成上色工作,从初始坐标开始,记录初始坐标的上下左右四个方向上像素值与初始坐标相同的相连像素点,接着再记录这四个方向...原创 2020-02-09 14:38:48 · 266 阅读 · 0 评论 -
leetcode 394——字符串解码
leetcode 394——字符串解码题目描述:给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复...原创 2020-02-09 13:01:01 · 150 阅读 · 0 评论 -
leetcode 225——用队列实现栈
leetcode 225——用队列实现栈题目描述:使用队列实现栈的下列操作:push(x) – 元素 x 入栈pop() – 移除栈顶元素top() – 获取栈顶元素empty() – 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。你所使用的语言也...原创 2020-02-09 00:40:37 · 128 阅读 · 0 评论 -
leetcode 232——用栈实现队列
leetcode 232——用栈实现队列题目描述:使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2);queue.peek(...原创 2020-02-09 00:01:40 · 99 阅读 · 0 评论