随笔分类 -  leetcode

摘要:题目描述: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径? 网格中的障碍物和空位置分别用 阅读全文
posted @ 2020-08-24 09:17 small_lei_it 阅读(166) 评论(0) 推荐(0)
摘要:题目描述: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 问总共有多少条不同的路径? 示例1: 输入: m = 3, n = 2 输出: 3 解释: 从左上 阅读全文
posted @ 2020-08-21 09:22 small_lei_it 阅读(148) 评论(0) 推荐(0)
摘要:题目描述: 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例: 输入: [ [1,3,1], [1,5,1], [4,2,1] ] 输出: 7 解释: 因为路径 1→3→1→1→1 的总和最小。 解题 阅读全文
posted @ 2020-08-20 09:17 small_lei_it 阅读(159) 评论(0) 推荐(0)
摘要:题目描述: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入:2 输出:2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶 示例 2: 输入: 3 输出: 阅读全文
posted @ 2020-08-19 09:07 small_lei_it 阅读(88) 评论(0) 推荐(0)
摘要:题目描述: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高 阅读全文
posted @ 2020-08-18 09:18 small_lei_it 阅读(166) 评论(0) 推荐(0)
摘要:题目描述: 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1: 输入: 2 / \ 1 3 输出: true 示例 2: 输入: 5 / \ 阅读全文
posted @ 2020-08-17 09:13 small_lei_it 阅读(134) 评论(0) 推荐(0)
摘要:题目描述: 给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。 例如, 给定二叉搜索树: 4 / \ 2 7 / \ 1 3 和值: 2 你应该返回如下子树: 2 / \ 1 3 来源:力扣(Leet 阅读全文
posted @ 2020-08-14 09:05 small_lei_it 阅读(119) 评论(0) 推荐(0)
摘要:题目描述: 在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫 阅读全文
posted @ 2020-08-13 09:08 small_lei_it 阅读(123) 评论(0) 推荐(0)
摘要:题目描述: 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。(即逐层地,从左到右访问所有节点)。 示例:二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3], [9,20], [15,7] ] 解题思路: 首先我们要 阅读全文
posted @ 2020-08-12 09:02 small_lei_it 阅读(224) 评论(0) 推荐(0)
摘要:题目描述: 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉树: root = [ 阅读全文
posted @ 2020-08-11 08:59 small_lei_it 阅读(112) 评论(0) 推荐(0)
摘要:题目描述: 给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种? 示例: 输入: 3 输出: 5 解释: 给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / / \ \ 2 1 2 3 解题思路: 假设 阅读全文
posted @ 2020-08-10 09:26 small_lei_it 阅读(114) 评论(0) 推荐(0)
摘要:题目描述: 给定一个二叉树,原地将它展开为一个单链表。 例如,给定二叉树 1 / \ 2 5 / \ \3 4 6 将其展开为: 1 \ 2 \ 3 \ 4 \ 5 \ 6 解法一 我们需要两步完成这道题。 将左子树插入到右子树的地方 将原来的右子树接到左子树的最右边节点 考虑新的右子树的根节点,一 阅读全文
posted @ 2020-08-07 09:31 small_lei_it 阅读(110) 评论(0) 推荐(0)
摘要:题目描述: 给定一个二叉树,返回它的中序 遍历。 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] //go //* Definition for a binary tree node. type TreeNode struct { Val int Left *TreeN 阅读全文
posted @ 2020-08-06 09:05 small_lei_it 阅读(144) 评论(0) 推荐(0)
摘要:题目描述: 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。 示例 : 给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。 注意:两结点之间的路径 阅读全文
posted @ 2020-08-05 09:03 small_lei_it 阅读(425) 评论(0) 推荐(0)
摘要:题目描述: 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [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 //go /** * D 阅读全文
posted @ 2020-08-04 08:55 small_lei_it 阅读(151) 评论(0) 推荐(0)
摘要:题目描述: 根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: 3 / \ 9 20 / \ 15 7 //go /* 阅读全文
posted @ 2020-08-03 09:36 small_lei_it 阅读(219) 评论(0) 推荐(0)
摘要:题目描述: 给定一个字符串,要求把字符串前面的若干个字符移动到字符串的尾部,如把字符串“abcdef”前面的2个字符’a’和’b’移动到字符串的尾部,使得原字符串变成字符串“cdefab”。请写一个函数完成此功能,要求对长度为n的字符串操作的时间复杂度为 O(n),空间复杂度为 O(1)。 解题思路 阅读全文
posted @ 2020-07-30 13:45 small_lei_it 阅读(323) 评论(0) 推荐(0)
摘要:题目描述: 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1: 给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]], 原地旋转输入 阅读全文
posted @ 2020-07-30 09:52 small_lei_it 阅读(601) 评论(0) 推荐(0)
摘要:题目描述: 给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 示例: 输入:nums = [-1,2,1,-4], target = 1 输出:2 解释:与 ta 阅读全文
posted @ 2020-07-29 09:28 small_lei_it 阅读(124) 评论(0) 推荐(0)
摘要:题目描述: 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例: 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足 阅读全文
posted @ 2020-07-28 09:47 small_lei_it 阅读(241) 评论(0) 推荐(0)