
leetbook
文章平均质量分 51
叶落雨飘
emmmmm 我是一只小萌新~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[leetbook中级算法-动态规划(java解法)]LC最长上升子序列
leetbook:中级算法 类型:动态规划 题目名:最长上升子序列 原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xwhvq3/ 题目描述 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 示例 1: 输入:nums = [10,原创 2021-01-27 18:39:23 · 195 阅读 · 0 评论 -
[leetbook中级算法-动态规划(java解法)]LC零钱兑换
leetbook:中级算法 类型:动态规划 题目名:零钱兑换 原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xvf0kh/ 题目描述 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 你可以认为每种硬币的数量是无限的。 示例 1: 输入:coins = [1, 2, 5], amount原创 2021-01-27 16:52:17 · 317 阅读 · 0 评论 -
[leetbook中级算法-动态规划(java解法)]LC不同路径
leetbook:中级算法 类型:动态规划 题目名:不同路径 原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xvjigd/ 题目描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径? 示例 1: 输入:m = 3, n = 7 输原创 2021-01-27 11:46:08 · 197 阅读 · 0 评论 -
[leetbook中级算法-动态规划(java解法)]LC跳跃游戏
leetbook:中级算法 类型:动态规划 题目名:跳跃游戏 原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xvenhm/ 题目描述 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再原创 2021-01-27 11:22:27 · 158 阅读 · 0 评论 -
[leetbook中级算法-排序和搜索(java解法)]LC搜索二维矩阵 II
leetbook:中级算法 类型:排序和搜索 题目名:搜索二维矩阵 II 原题URL: https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xvc64r/ 题目描述 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 示例 示例 1: 输入:matrix = [[1,4,7,11,15],[2,5,8原创 2021-01-27 10:59:13 · 154 阅读 · 0 评论 -
[leetbook中级算法-排序和搜索(java解法)]LC搜索旋转排序数组
leetbook:中级算法 类型:排序和搜索 题目名:搜索旋转排序数组 原题URL: https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xvyz1t/ 题目描述 升序排列的整数数组 nums 在预先未知的某个点上进行了旋转(例如, [0,1,2,4,5,6,7] 经旋转后可能变为 [4,5,6,7,0,1,2] )。 请你在数组中搜索 target ,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。 示例 示原创 2021-01-27 10:40:20 · 143 阅读 · 0 评论 -
[leetbook中级算法-排序和搜索(java解法)]LC合并区间
leetbook:中级算法 类型:排序和搜索 题目名:合并区间 原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xv11yj/ 题目描述 给出一个区间的集合,请合并所有重叠的区间。 示例 示例 1: 输入: intervals = [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [原创 2021-01-26 18:20:56 · 150 阅读 · 0 评论 -
[leetbook中级算法-排序和搜索(java解法)]LC在排序数组中查找元素的第一个和最后一个位置
leetbook:中级算法 类型:排序和搜索 题目名:在排序数组中查找元素的第一个和最后一个位置 原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xv4bbv/ 题目描述 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 进阶: 你可以设计并实现时间复杂度为 O(log n)原创 2021-01-26 17:53:35 · 129 阅读 · 0 评论 -
[leetbook中级算法-排序和搜索(java解法)]LC寻找峰值
leetbook:中级算法 类型:排序和搜索 题目名:寻找峰值 原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xv4hjg/ 题目描述 峰值元素是指其值大于左右相邻值的元素。 给你一个输入数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。 你可以假设 nums[-1] = nums[n] = -∞ 。 示例 示例 1: 输入:nums = [1原创 2021-01-26 17:18:14 · 161 阅读 · 0 评论 -
[leetbook中级算法-排序和搜索(java解法)]LC前 K 个高频元素
leetbook:中级算法 类型:排序和搜索 题目名:前 K 个高频元素 原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xvzpxi/ 题目描述 给定一个非空的整数数组,返回其中出现频率前 *k* 高的元素。 示例 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums = [1], k = 1 输出: [1] 示例 3: 输入:n原创 2021-01-26 16:07:26 · 128 阅读 · 0 评论 -
[leetbook中级算法-排序和搜索(java解法)]LC颜色分类
leetbook:中级算法 类型:排序和搜索 题目名:颜色分类 原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xvg25c/ 题目描述 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 示例 示例 1: 输入:nums = [2,0,2,1,1,0] 输出:原创 2021-01-26 14:21:58 · 149 阅读 · 0 评论 -
[leetbook中级算法-回溯算法(java解法)]LC单词搜索
leetbook:中级算法 类型:回溯算法 题目名:单词搜索 原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xvkwe2/ 题目描述 给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示例 示例 1: board = [ ['A','B','C','E原创 2021-01-25 11:51:04 · 146 阅读 · 0 评论 -
[leetbook中级算法-回溯算法(java解法)]LC子集
leetbook:中级算法 类型:回溯算法 题目名:子集 原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xv33m7/ 题目描述 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 示例 1: 输入:nums = [1,2,3] 输出:[[],[1],[2],[1,2],[3],[1,3],[2,3]原创 2021-01-25 11:43:52 · 180 阅读 · 0 评论 -
[leetbook中级算法-回溯算法(java解法)]LC全排列
leetbook:中级算法 类型:回溯算法 题目名:全排列 原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xvqup5/ 题目描述 给定一个 没有重复 数字的序列,返回其所有可能的全排列。 示例 示例 1: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 解题思路 1.回溯算法 2原创 2021-01-25 11:24:22 · 166 阅读 · 0 评论 -
[leetbook中级算法-回溯算法(java解法)]LC括号生成
leetbook:中级算法 类型:回溯算法 题目名:括号生成 原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xv33m7/ 题目描述 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 示例 1: 输入:n = 3 输出:["((()))","(()())","(())()","()(())","()()()"] 示例 2: 输入:n = 1 输出:["原创 2021-01-25 11:19:15 · 164 阅读 · 0 评论 -
[leetbook中级算法-回溯算法(java解法)]LC电话号码的字母组合
leetbook:中级算法 类型:回溯算法 题目名:电话号码的字母组合 原题URL:[https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xv8ka1/][https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xv8ka1/] 题目描述 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键原创 2021-01-24 22:20:12 · 201 阅读 · 0 评论 -
[leetbook中级算法-树和图(java解法)]LC岛屿数量
leetbook:中级算法 类型:树和图 题目名:岛屿数量 原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xvtsnm/ 题目描述 给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边均被水包围。 示例 示例 1: 输入:grid = [ ["1","1"原创 2021-01-24 21:26:08 · 160 阅读 · 0 评论 -
[leetbook中级算法-树和图(java解法)]LC二叉搜索树中第K小的元素
leetbook:中级算法 类型:树和图 题目名:二叉搜索树中第K小的元素 原题URL:https????/leetcode-cn.com/leetbook/read/top-interview-questions-medium/xvuyv3/ 题目描述 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。 说明: 你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。 示例 示例 1: 输入: root = [3,1,4,null,2], k = 1原创 2021-01-24 21:22:34 · 113 阅读 · 0 评论 -
[leetbook中级算法-树和图(java解法)]LC填充每个节点的下一个右侧节点指针
leetbook:中级算法 类型:树和图 题目名:填充每个节点的下一个右侧节点指针 原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xvijdh/ 题目描述 给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 n原创 2021-01-24 21:19:22 · 167 阅读 · 0 评论 -
[leetbook中级算法-树和图(java解法)]LC从前序与中序遍历序列构造二叉树
leetbook:中级算法 类型:树和图 题目名:从前序与中序遍历序列构造二叉树 原题URL:https????/leetcode-cn.com/leetbook/read/top-interview-questions-medium/xvix0d/ 题目描述 根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: 3原创 2021-01-24 21:14:41 · 143 阅读 · 0 评论 -
[leetbook中级算法-树和图(java解法)]LC二叉树的锯齿形层次遍历
leetbook:中级算法 类型:树和图 题目名:二叉树的锯齿形层次遍历 原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xvle7s/ 题目描述 给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 示例 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 1原创 2021-01-24 21:11:18 · 175 阅读 · 0 评论 -
[leetbook中级算法-树和图(java解法)]LC二叉树的中序遍历
leetbook:中级算法 类型:树和图 题目名:二叉树的中序遍历 原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xv7pir/ 题目描述 给定一个二叉树的根节点 root ,返回它的 中序 遍历。 示例 示例 1: 输入:root = [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 限制 树中原创 2021-01-24 21:07:01 · 138 阅读 · 0 评论 -
[leetbook中级算法-链表(java解法)]LC相交链表
leetbook:中级算法 类型:链表 题目名:相交链表 原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xv02ut/ 题目描述 编写一个程序,找到两个单链表相交的起始节点。 示例 示例 1: 输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3 输出:Reference of the n原创 2021-01-23 21:46:46 · 183 阅读 · 0 评论 -
[leetbook中级算法-链表(java解法)]LC奇偶链表
leetbook:中级算法 类型:链表 题目名:奇偶链表 原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xvdwtj/ 题目描述 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。 请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。 示例 示例 1: 输原创 2021-01-23 21:31:35 · 182 阅读 · 0 评论 -
[leetbook中级算法-链表(java解法)]LC两数相加
leetbook:中级算法 类型:链表 题目名:两数相加 原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xvw73v/ 题目描述 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例 示例 1: 输入:l1 = [2,4原创 2021-01-23 18:41:54 · 211 阅读 · 1 评论 -
[leetbook中级算法-数组和字符串(java解法)]LC递增的三元子序列
leetbook:中级算法 类型:数组和字符串 题目名:递增的三元子序列 原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xvvuqg/ 题目描述 给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列。 如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k ,使得 nums[i] < nums[j] < nums[k] ,返回 true ;原创 2021-01-23 15:06:04 · 244 阅读 · 1 评论 -
[leetbook中级算法-数组和字符串(java解法)]LC最长回文子串
leetbook:中级算法 类型:数组和字符串 题目名:最长回文子串 原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xvn3ke/ 题目描述 给你一个字符串 s,找到 s 中最长的回文子串。 示例 示例 1: 输入:s = "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。 示例 2: 输入:s = "cbbd" 输出:"bb" 示例 3: 输入:s = "ac" 输出:"a"原创 2021-01-23 12:44:34 · 147 阅读 · 0 评论 -
[leetbook中级算法-数组和字符串(java解法)]LC无重复字符的最长子串
leetbook:中级算法 类型:数组和字符串 题目名:无重复字符的最长子串 原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xv2kgi/ 题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: s = "bbbbb" 输出:原创 2021-01-23 12:40:05 · 152 阅读 · 0 评论 -
[leetbook中级算法-数组和字符串(java解法)]LC字母异位词分组
leetbook:中级算法 类型:数组和字符串 题目名:字母异位词分组 原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xvaszc/ 题目描述 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 示例 示例 1: 输入: ["eat", "tea", "tan", "ate", "nat", "bat"] 输出: [ ["ate","eat","tea"], [原创 2021-01-23 12:33:44 · 196 阅读 · 0 评论 -
[leetbook中级算法-数组和字符串(java解法)]LC矩阵置零
leetbook:中级算法 类型:数组和字符串 题目名:矩阵置零 原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xvmy42/ 题目描述 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用**原地算法。** 示例 示例 1: 输入: [ [1,1,1], [1,0,1], [1,1,1] ] 输出: [ [1,0,1], [0,0,0],原创 2021-01-23 12:29:57 · 168 阅读 · 0 评论 -
[leetbook中级算法-数组和字符串(java解法)]LC三数之和
leetbook:中级算法 类型:数组和字符串 题目名:三数之和 原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xvpj16/ 题目描述 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 示例 1: 输入:nums = [-1,0,1,2,-1原创 2021-01-23 12:23:09 · 162 阅读 · 3 评论