自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 LeetCode [93] 复原IP地址

LeetCode [93] 复原IP地址题目描述题目分析源码改进改进代码分析 题目描述 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。 示例: 输入: “25525511135” 输出: [“255.255.11.135”, “255.255.111.35”] 题目分析 这道题题目很短,可以说是做过里面最短的了,但是边界却出奇的多,我们来列一下到底要考虑多少东西,我们从极端...

2019-03-27 17:51:59 356

原创 LeetCode [92] 反转链表 II

LeetCode [92] 反转链表 II题目描述题目分析源码改进改进代码分析 题目描述 反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明: 1 ≤ m ≤ n ≤ 链表长度。 示例: 输入: 1->2->3->4->5->NULL, m = 2, n = 4 输出: 1->4->3->2->5->NULL 题目分析 全链...

2019-03-27 17:29:53 228

原创 LeetCode [91] 解码方法

LeetCode [91] 解码方法题目描述题目分析源码改进改进代码分析 题目描述 一条包含字母 A-Z 的消息通过以下方式进行了编码: ‘A’ -> 1 ‘B’ -> 2 … ‘Z’ -> 26 给定一个只包含数字的非空字符串,请计算解码方法的总数。 示例 1: 输入: “12” 输出: 2 解释: 它可以解码为 “AB”(1 2)或者 “L”(12)。 示例 2: 输入: “...

2019-03-27 16:52:26 261

原创 LeetCode [90]子集 II

LeetCode [90]子集 II题目描述题目分析源码改进改进代码分析 题目描述 给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: [1,2,2] 输出: [ [2], [1], [1,2,2], [2,2], [1,2], [] ] 题目分析 这道题比普通的回溯找子集难在他里面有相同的数,所以有很多重复的子集就需要...

2019-03-27 16:15:05 205

原创 LeetCode [89]格雷编码

LeetCode [89]格雷编码题目描述题目分析源码改进改进代码分析难点 题目描述 格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。 给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。格雷编码序列必须以 0 开头。 示例 1: 输入: 2 输出: [0,1,3,2] 解释: 00 - 0 01 - 1 11 - 3 10 - 2 对于给定的 n,其格雷编码序列...

2019-03-27 15:11:56 219

原创 LeetCode [88]合并两个有序数组

LeetCode [88]合并两个有序数组题目描述题目分析源码改进改进代码分析难点 题目描述 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示...

2019-03-27 14:22:42 263

原创 LeetCode [86]分隔链表

LeetCode [86]分隔链表题目描述题目分析源码改进改进代码分析难点小结 题目描述 给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。 你应当保留两个分区中每个节点的初始相对位置。 示例: 输入: head = 1->4->3->2->5->2, x = 3 输出: 1->2->2->4-&g...

2019-03-26 17:51:06 178

原创 LeetCode [82] 删除排序链表中的重复元素 II

LeetCode [82] 删除排序链表中的重复元素 II题目描述题目分析源码改进改进代码分析难点小结 题目描述 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。 示例 1: 输入: 1->2->3->3->4->4->5 输出: 1->2->5 示例 2: 输入: 1->1->1->2-&gt...

2019-03-26 17:36:23 221

原创 LeetCode [80] 删除排序数组中的重复项 II

LeetCode [80] 删除排序数组中的重复项 II题目描述题目分析源码改进改进代码分析难点小结 题目描述 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定 nums = [1,1,1,2,2,3], 函数应返回新长度 length ...

2019-03-26 17:05:15 159

原创 LeetCode [79] 单词搜索

LeetCode [79] 单词搜索题目描述题目分析源码改进改进代码分析难点小结 题目描述 给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示例: board = [ [‘A’,‘B’,‘C’,‘E’], [‘S’,‘F’,‘C’,‘S’], [...

2019-03-26 16:35:54 197

原创 LeetCode [77] 组合

LeetCode [77] 组合题目描述题目分析源码改进改进代码分析难点小结 题目描述 给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。 示例: 输入: n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] 题目分析 这就是一个很经典的回溯问题。如果list的元素到了k个,那么res就加进去开始新的循...

2019-03-26 15:59:21 186

原创 LeetCode [75] 颜色分类

LeetCode [75] 颜色分类题目描述题目分析源码改进改进代码分析难点小结 题目描述 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意: 不能使用代码库中的排序函数来解决这道题。 示例: 输入: [2,0,2,1,1,0] 输出: [0,...

2019-03-26 15:31:49 156

原创 LeetCode [74] 搜索二维矩阵

LeetCode [74] 搜索二维矩阵题目描述题目分析源码改进改进代码分析难点小结 题目描述 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 示例 1: 输入: matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34,...

2019-03-25 15:41:48 208

原创 LeetCode [73] 矩阵置零

LeetCode [73] 矩阵置零题目描述题目分析源码改进改进代码分析难点小结 题目描述 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。 示例 1: 输入: [ [1,1,1], [1,0,1], [1,1,1] ] 输出: [ [1,0,1], [0,0,0], [1,0,1] ] 示例 2: 输入: [ [0,1,2,0], [3,4...

2019-03-25 15:19:40 222

原创 LeetCode [71] 简化路径

LeetCode [71] 简化路径题目描述题目分析源码改进改进代码分析难点小结 题目描述 以 Unix 风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。 在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (…) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。更多信息请参阅:Linux / Unix中的绝对路径 vs...

2019-03-25 14:43:08 235

原创 LeetCode [65] 有效数字

LeetCode [65] 有效数字题目描述题目分析源码改进改进代码分析难点小结 题目描述 验证给定的字符串是否为数字。 例如: “0” => true " 0.1 " => true “abc” => false “1 a” => false “2e10” => true 说明: 我们有意将问题陈述地比较模糊。在实现代码之前,你应当事先思考所有可能的情况。 题目分析...

2019-03-25 14:07:09 412

原创 [LeetCode 64] 最小路径和

[LeetCode 64] 最小路径和题目描述题目分析源码改进改进代码分析难点小结 题目描述 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例: 输入: [ [1,3,1], [1,5,1], [4,2,1] ] 输出: 7 解释: 因为路径 1→3→1→1→1 的总和最小。 题目分析 这道题不就是...

2019-03-25 13:48:35 181

原创 [LeetCode 63] 不同路径 II

[LeetCode 63] 不同路径 II题目描述题目分析源码改进改进代码分析难点小结 题目描述 示例 1: 输入: [ [0,0,0], [0,1,0], [0,0,0] ] 输出: 2 解释: 3x3 网格的正中间有一个障碍物。 从左上角到右下角一共有 2 条不同的路径: 向右 -> 向右 -> 向下 -> 向下 向下 -> 向下 -> 向右 -> 向右...

2019-03-25 13:22:05 192

原创 [LeetCode 61] 旋转链表

[LeetCode 61] 旋转链表题目描述题目分析源码改进改进代码分析难点小结 题目描述 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: 1->2->3->4->5->NULL, k = 2 输出: 4->5->1->2->3->NULL 解释: 向右旋转 1 步: 5->1-...

2019-03-24 19:52:10 186

原创 [LeetCode 60] 第k个排列

[LeetCode 60] 第k个排列题目描述题目分析源码改进改进代码分析难点小结 题目描述 按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下: “123” “132” “213” “231” “312” “321” 给定 n 和 k,返回第 k 个排列。 说明: 给定 n 的范围是 [1, 9]。 给定 k 的范围是[1, n!]。 示例 1: 输入: n = 3, ...

2019-03-24 19:34:04 291

原创 [LeetCode 59] 螺旋矩阵 II

[LeetCode 59] 螺旋矩阵 II题目描述源码改进改进代码分析难点小结 题目描述 给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。 示例: 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]## 题目分析 这道题和螺旋矩阵一样,就是从上右下左的顺序慢慢打印数字,有几个就打印n^2个数字就完...

2019-03-24 19:12:42 190

原创 [LeetCode 57] 插入区间

[LeetCode 57] 插入区间题目描述题目分析源码改进改进代码分析难点小结 题目描述 给出一个无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 示例 1: 输入: intervals = [[1,3],[6,9]], newInterval = [2,5] 输出: [[1,5],[6,9]] 示例...

2019-03-24 18:20:59 203 1

原创 [LeetCode 56] 合并区间

[LeetCode 56] 合并区间题目描述题目分析源码改进改进代码分析难点小结 题目描述 给出一个区间的集合,请合并所有重叠的区间。 示例 1: 输入: [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6]. 示例 2: 输入: [[1,4],[4,5]] 输出:...

2019-03-24 17:57:41 312

原创 [LeetCode 54] 螺旋矩阵

[LeetCode 54] 螺旋矩阵题目描述题目分析源码改进改进代码分析难点小结 题目描述 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。 示例 1: 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] 输出: [1,2,3,6,9,8,7,4,5] 示例 2: 输入: [ [1, 2, 3, 4],...

2019-03-24 17:28:10 317

原创 [LeetCode 52] N皇后 II

[LeetCode 52] N皇后 II题目描述题目分析源码难点小结 题目描述 示例: 输入: 4 输出: 2 解释: 4 皇后问题存在如下两个不同的解法。 [ [".Q…", // 解法 1 “…Q”, “Q…”, “…Q.”], ["…Q.", // 解法 2 “Q…”, “…Q”, “.Q…”] ] 题目分析 N皇后 II和LeetCode 51其实是一摸一样的题,不过这道题就是把回溯...

2019-03-23 19:56:45 238

原创 [LeetCode 51] N皇后

[LeetCode 51] N皇后题目描述题目分析源码难点小结 题目描述 示例: 输入: 4 输出: [ [".Q…", // 解法 1 “…Q”, “Q…”, “…Q.”], ["…Q.", // 解法 2 “Q…”, “…Q”, “.Q…”] ] 解释: 4 皇后问题存在两个不同的解法。 题目分析 这个N皇后其实和数独有异曲同工的地方,皇后不能互相攻击的意思就在同一行同一列以及两条对角线...

2019-03-23 19:39:56 170

原创 [LeetCode 49] 字母异位词分组

[LeetCode 49] 字母异位词分组题目描述题目分析源码难点改进小结 题目描述 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 示例: 输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”], 输出: [ [“ate”,“eat”,“tea”], [“nat”,“tan”], [“bat”] ] 说明: 所有输入均...

2019-03-23 18:38:45 519

原创 [LeetCode 48] 旋转图像

[LeetCode 48] 旋转图像题目描述题目分析源码难点小结 题目描述 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1: 给定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵,使其变为: [ [7,4,1...

2019-03-23 18:09:42 169

原创 [LeetCode 37] 解数独

[LeetCode 37] 解数独题目描述题目分析源码难点小结 题目描述 Note: 给定的数独序列只包含数字 1-9 和字符 ‘.’ 。 你可以假设给定的数独只有唯一解。 给定数独永远是 9x9 形式的。 题目分析 前面的分析和LeetCode 36的一摸一样,不过是先遍历一遍数独,把已经填好的数字保存在那三个数组中,如果不做36直接上手37还是挺难的。保存完之后就是添加了,再遍历一次获取空的...

2019-03-23 17:33:24 252

原创 [LeetCode 36]有效的数独

LeetCode 36 有效的数独题目描述题目分析源码难点小结改进 题目描述 示例 1: 输入: [ [“5”,“3”,".",".",“7”,".",".",".","."], [“6”,".",".",“1”,“9”,“5”,".",".","."], [".",“9”,“8”,".",".",".",".",“6”,"."], [“8”,".",".",".",“6”,".",".","....

2019-03-23 16:43:44 197

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除