07 2020 档案
摘要:leetcode刷题笔记九十八题 验证二叉搜索树 源地址:98. 验证二叉搜索树 问题描述: 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。
阅读全文
摘要:leetcode刷题笔记九十七题 交错字符串 源地址:97. 交错字符串 问题描述: 给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的。 示例 1: 输入:s1 = "aabcc", s2 = "dbbca", s3 = "aadbbcbcac" 输出:tru
阅读全文
摘要:leetcode刷题笔记九十六题 不同的二叉搜索树 源地址:96. 不同的二叉搜索树 问题描述: 给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种? 示例: 输入: 3 输出: 5 解释: 给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / /
阅读全文
摘要:leetcode刷题笔记九十五题 不同的二叉搜索树II 源地址:95. 不同的二叉搜索树 II 问题描述: 给定一个整数 n,生成所有由 1 ... n 为节点所组成的 二叉搜索树 。 示例: 输入:3 输出: [ [1,null,3,2], [3,2,null,1], [3,1,null,null
阅读全文
摘要:leetcode刷题笔记九十四题 二叉树的中序遍历 源地址:94. 二叉树的中序遍历 问题描述: 给定一个二叉树,返回它的中序 遍历。 示例: 输入: [1,null,2,3] 1 2 / 3 输出: [1,3,2] /** 本题共有三种解法,第一种为常规的递归解法 */ /** * Definit
阅读全文
摘要:leetcode刷题笔记九十三题 复原IP地址 源地址:93. 复原IP地址 问题描述: 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。 有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 '.' 分隔。 示例: 输入: "255255111
阅读全文
摘要:leetcode刷题笔记九十二题 反转链表II 源地址:92. 反转链表 II 问题描述: 反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明: 1 ≤ m ≤ n ≤ 链表长度。 示例: 输入: 1->2->3->4->5->NULL, m = 2, n = 4 输出: 1->4->3
阅读全文
摘要:leetcode刷题笔记九十一题 解码方法 源地址:91. 解码方法 问题描述: 一条包含字母 A-Z 的消息通过以下方式进行了编码: 'A' → 1 'B' → 2 ... 'Z' → 26 给定一个只包含数字的非空字符串,请计算解码方法的总数。 示例 1: 输入: "12" 输出: 2 解释:
阅读全文
摘要:leetcode刷题笔记九十题 子集II 源地址:90. 子集 II 问题描述: 给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: [1,2,2] 输出: [ [2], [1], [1,2,2], [2,2], [1,2
阅读全文
摘要:leetcode刷题笔记八十九题 格雷编码 源地址:89. 格雷编码 问题描述: 格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。 给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。即使有多个不同答案,你也只需要返回其中一种。 格雷编码序列必须以 0 开头。 示例
阅读全文
摘要:leetcode刷题笔记八十八题 合并两个有序数组 源地址:88. 合并两个有序数组 问题描述: 你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n
阅读全文
摘要:leetcode刷题笔记八十七题 扰乱字符串 源地址:87. 扰乱字符串 问题描述: 给定一个字符串 s1,我们可以把它递归地分割成两个非空子字符串,从而将其表示为二叉树。 下图是字符串 s1 = "great" 的一种可能的表示形式。 great / gr eat / \ / g r e at /
阅读全文
摘要:leetcode刷题笔记八十六题 分隔链表 源地址:86. 分隔链表 问题描述: 给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。 你应当保留两个分区中每个节点的初始相对位置。 示例: 输入: head = 1->4->3->2->5->2, x
阅读全文
摘要:Spark权威指南读书笔记(一) 一、什么是Spark? 1.Spark设计哲学 统一平台 计算引擎(不考虑数据存储) 配套的软件库 二、Spark应用程序 spark应用程序由一个驱动器进程和一组执行器进程组成。 驱动器进程 负责运行main函数,主要负责三件事: 维护Spark应用程序的相关信息
阅读全文
摘要:leetcode刷题笔记八十五题 最大矩形 源地址:85. 最大矩形 问题描述: 给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 示例: 输入: [ ["1","0","1","0","0"], ["1","0","1","1","1"], ["1","1"
阅读全文
摘要:leetcode刷题笔记八十四题 柱状图中最大的矩形 源地址:84. 柱状图中最大的矩形 问题描述: 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为
阅读全文
摘要:leetcode刷题笔记八十三题 删除排序链表中的重复元素 源地址:83. 删除排序链表中的重复元素 问题描述: 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例 1: 输入: 1->1->2 输出: 1->2 示例 2: 输入: 1->1->2->3->3 输出: 1->2->
阅读全文
摘要:leetcode刷题笔记八十二题 删除排序链表中的重复元素 II 源地址:82. 删除排序链表中的重复元素 II 问题描述: 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。 示例 1: 输入: 1->2->3->3->4->4->5 输出: 1->2->5 示
阅读全文
摘要:leetcode刷题笔记八十一题 搜索旋转排序数组 II 源地址:81. 搜索旋转排序数组 II 问题描述: 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] )。 编写一个函数来判断给定的目标值是否存在
阅读全文
摘要:leetcode刷题笔记八十题 删除排序数组中的重复项 II 源地址:80. 删除排序数组中的重复项 II 问题描述: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的
阅读全文
摘要:leetcode刷题笔记七十九题 单词搜索 源地址:79. 单词搜索 问题描述: 给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示例: boar
阅读全文
摘要:leetcode刷题笔记七十八题 子集 源地址:78. 子集 问题描述: 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3]
阅读全文
摘要:leetcode刷题笔记七十七题 组合 源地址:77. 组合 问题描述: 给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。 示例: 输入: n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] /*
阅读全文
摘要:leetcode刷题笔记七十六题 最小覆盖子串 源地址:76. 最小覆盖子串 问题描述: 给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字符的最小子串。 示例: 输入: S = "ADOBECODEBANC", T = "ABC" 输出: "BANC" 说明: 如果 S
阅读全文
摘要:leetcode刷题笔记七十五题 颜色分类 源地址:75. 颜色分类 问题描述: 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意: 不能使用代
阅读全文
摘要:leetcode刷题笔记七十四题 搜索二维数组 源地址:74. 搜索二维矩阵 问题描述: 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 示例 1: 输入: matrix = [ [
阅读全文
摘要:leetcode刷题笔记七十三题 矩阵置零 源地址:73. 矩阵置零 问题描述: 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。 示例 1: 输入: [ [1,1,1], [1,0,1], [1,1,1] ] 输出: [ [1,0,1], [
阅读全文
摘要:leetcode刷题笔记七十二题 编辑距离 源地址:72. 编辑距离 问题描述: 给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示例 1: 输入:word1
阅读全文
摘要:leetcode刷题笔记七十一题 简化路径 源地址:71. 简化路径 问题描述: 以 Unix 风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。 在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (..) 表示将目录切换到上一级(指向父目录);两
阅读全文
摘要:leetcode刷题笔记七十题 爬楼梯 源地址:70. 爬楼梯 问题描述: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1
阅读全文
摘要:leetcode刷题笔记六十九题 X的平方根 源地址:69. x 的平方根 问题描述: 实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 示例 1: 输入: 4 输出: 2 示例 2: 输入:
阅读全文
摘要:leetcode刷题笔记六十八题 文本左右对齐 源地址:68. 文本左右对齐 问题描述: 给定一个单词数组和一个长度 maxWidth,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本。 你应该使用“贪心算法”来放置给定的单词;也就是说,尽可能多地往每行中放置单词。必
阅读全文
摘要:leetcode刷题笔记六十七题 二进制求和 源地址:67. 二进制求和 问题描述: 给你两个二进制字符串,返回它们的和(用二进制表示)。 输入为 非空 字符串且只包含数字 1 和 0。 示例 1: 输入: a = "11", b = "1" 输出: "100" 示例 2: 输入: a = "101
阅读全文
摘要:leetcode刷题笔记六十六题 加一 源地址:66. 加一 问题描述: 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 输入: [1,2,3] 输出:
阅读全文
摘要:leetcode刷题笔记六十五 有效数字 源地址:65. 有效数字 问题描述: 验证给定的字符串是否可以解释为十进制数字。 例如: "0" ⇒ true " 0.1 " ⇒ true "abc" ⇒ false "1 a" ⇒ false "2e10" ⇒ true " -90e3 " ⇒ true
阅读全文
摘要:leetcode刷题笔记六十四 最小路径和 源地址:64. 最小路径和 问题描述: 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例: 输入: [ [1,3,1], [1,5,1], [4,2,1]
阅读全文
摘要:leetcode刷题笔记六十二与六十三 不同路径与不同路径II 第六十二题 不同路径 源地址:62. 不同路径 问题描述: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Fin
阅读全文
摘要:leetcode刷题笔记六十一 旋转链表 源地址:61. 旋转链表 问题描述: 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: 1->2->3->4->5->NULL, k = 2 输出: 4->5->1->2->3->NULL 解释: 向右旋转
阅读全文
摘要:leetcode刷题笔记六十 第K个排列 源地址:60. 第k个排列 问题描述: 给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。 按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下: "123" "132" "213" "231" "312" "321" 给
阅读全文
摘要:leetcode刷题笔记五十八 最后一个单词的长度 源地址:58. 最后一个单词的长度 问题描述: 给定一个仅包含大小写字母和空格 ' ' 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。 如果不存在最后一个单词,请返回 0 。 说明:一个单词
阅读全文
摘要:leetcode刷题笔记五十六和五十七 合并区间与插入区间 源地址:56. 合并区间 问题描述: 给出一个区间的集合,请合并所有重叠的区间。 示例 1: 输入: [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: 区间 [1,3]
阅读全文
摘要:leetcode刷题笔记五十五 跳跃游戏 源地址:55. 跳跃游戏 问题描述: 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳
阅读全文
摘要:leetcode刷题笔记五十四及五十九 螺旋矩阵和螺旋矩阵II 源地址:54. 螺旋矩阵 问题描述: 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。 示例 1: 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8,
阅读全文
摘要:leetcode刷题笔记五十三 最大子序和 源地址:53. 最大子序和 问题描述: 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2
阅读全文
摘要:leetcode刷题笔记五十一 与五十二 N皇后问题 源地址:51. N皇后 问题描述: n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。 每一种解法包含一个明确的 n 皇后问题的棋子放置方案
阅读全文
摘要:leetcode刷题笔记五十 Pow(x,n) 源地址:50. Pow(x, n) 问题描述: 现 pow(x, n) ,即计算 x 的 n 次幂函数。 示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例 2: 输入: 2.10000, 3 输出: 9.26100 示例
阅读全文
摘要:leetcode刷题笔记四十九 字母异位词分组 源地址:49. 字母异位词分组 问题描述: 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 示例: 输入: ["eat", "tea", "tan", "ate", "nat", "bat"] 输出: [ ["a
阅读全文
摘要:leetcode刷题笔记四十八 旋转图像 源地址:48. 旋转图像 问题描述: 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1: 给定 matrix = [
阅读全文
摘要:leetcode刷题笔记四十七 全排列II 源地址:47. 全排列 II 问题描述: 给定一个可包含重复数字的序列,返回所有不重复的全排列。 示例: 输入: [1,1,2] 输出: [ [1,1,2], [1,2,1], [2,1,1] ] 代码补充: //本题基于46题的DFS与回溯方法,由于存在
阅读全文
摘要:leetcode刷题笔记四十六 全排列 源地址:46. 全排列 问题描述: 给定一个 没有重复 数字的序列,返回其所有可能的全排列。 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 代码补充:
阅读全文
摘要:leetcode刷题笔记四十五 跳跃游戏II 源地址:45. 跳跃游戏 II 问题描述: 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 示例: 输入: [2,3,1,1,4] 输出: 2
阅读全文
浙公网安备 33010602011771号