
LeetCode
LeetCode算法题系列(每周更新两道)。
网忆小叶
用心丶用行
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
27. 移除元素
27. 移除元素 难度: 简单 描述: 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例1: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。 你不需要考虑数组中超出新长度后面的元素。 示例2: 给定 n原创 2020-08-05 17:03:47 · 236 阅读 · 0 评论 -
26. 删除排序数组中的重复项
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。原创 2020-05-18 15:30:57 · 286 阅读 · 0 评论 -
25. K 个一组翻转链表
给你一个链表,每k个节点一组进行翻转,请你返回翻转后的链表。k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k的整数倍,那么请将最后剩余的节点保持原有顺序。转载 2020-05-18 12:51:24 · 210 阅读 · 0 评论 -
24. 两两交换链表中的节点
24. 两两交换链表中的节点 难度: 困难 描述: 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例: 给定 1->2->3->4, 你应该返回 2->1->4->3. 代码实现: /** * Definition for singly-linked list. * pub...原创 2020-01-19 17:20:34 · 171 阅读 · 0 评论 -
23. 合并K个排序链表
23. 合并K个排序链表 难度: 困难 描述: 合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。 示例: 输入: [ 1->4->5, 1->3->4, 2->6 ] 输出: 1->1->2->3->4->4->5->6 代码实现: /** * Definition for singl...原创 2020-01-19 16:55:44 · 169 阅读 · 0 评论 -
22. 括号生成
22. 括号生成 难度: 中等 描述: 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 例如,给出 n = 3,生成结果为: [ "((()))", "(()())", "(())()", "()(())", "()()()" ] 代码实现: class Solution { private List<String...原创 2020-01-19 16:43:39 · 243 阅读 · 0 评论 -
21. 合并两个有序链表
21. 合并两个有序链表 难度: 简单 描述: 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 代码实现: /** * Definition for singly-linked list. * publ...原创 2020-01-19 16:42:24 · 151 阅读 · 0 评论 -
20. 有效的括号
20. 有效的括号 难度: 简单 描述: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 说明: 假设我们的环境只能存储 32 位大小的有符号整数,那么其数值范围为 [−231, 231 − 1]。如果数值超过...原创 2020-01-19 16:41:40 · 372 阅读 · 0 评论 -
19. 删除链表的倒数第N个节点
19. 删除链表的倒数第N个节点 难度: 中等 描述: 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 输入: "42" 输出: 42 说明: 假设我们的环境只能存储 32 位大小的有符号整数,那么其数值范围为 [−231, 231 − 1]。如果数值超过这个范围,请返回 INT_MAX (231 − 1) 或 INT_MIN (−231) 。 进阶: ...原创 2020-01-19 16:40:44 · 152 阅读 · 0 评论 -
18. 四数之和
18. 四数之和 难度: 中等 描述: 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。 注意: 答案中不可以包含重复的四元组。 示例: 给定数组 nums = [1, 0, -1, 0, -2, 2],和 targe...原创 2020-01-14 12:59:39 · 155 阅读 · 0 评论 -
17. 电话号码的字母组合
17. 电话号码的字母组合 难度: 中等 描述: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:"23" 输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]. 说明: 尽管上面的答案是按字典序排列的,但是你可以任意选择答...原创 2020-01-14 12:57:02 · 413 阅读 · 0 评论 -
16. 最接近的三数之和
16. 最接近的三数之和 难度: 中等 描述: 给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = ...原创 2020-01-14 12:50:55 · 174 阅读 · 0 评论 -
15. 三数之和
15. 三数之和 难度: 中等 描述: 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意: 答案中不可以包含重复的三元组。 示例: 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求的三元组集合为: [ [-1, 0, 1], [-1...原创 2020-01-14 12:49:17 · 187 阅读 · 0 评论 -
14. 最长公共前缀
14. 最长公共前缀 难度 简单 描述 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例1 输入: ["flower","flow","flight"] 输出: "fl" 示例2 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。 示例3 输入: "4193 with words" 输出: 419...原创 2020-01-14 12:43:52 · 150 阅读 · 0 评论 -
13. 罗马数字转整数
13. 罗马数字转整数 难度 简单 描述 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗...原创 2019-12-28 13:53:17 · 162 阅读 · 0 评论 -
12. 整数转罗马数字
12. 整数转罗马数字 难度 中等 描述 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗...原创 2019-12-28 13:43:45 · 271 阅读 · 0 评论 -
11. 盛最多水的容器
11. 盛最多水的容器 难度 中等 描述 给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明 你不能倾斜容器,且 n 的值至少为 2。 图中垂直线代表输入数组 [1,8,6,2,5,4,8,3...原创 2019-12-17 21:48:19 · 159 阅读 · 0 评论 -
10. 正则表达式匹配
10. 正则表达式匹配 难度 困难 描述 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。 '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。 说明 s 可能为空,且只包含从 a-z 的小写字母。 p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *...原创 2019-12-16 23:20:54 · 352 阅读 · 0 评论 -
9. 回文数
9. 回文数 难度 简单 描述 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例1 输入: 121 输出: true 示例2 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例3 输入: 10 输出: false 解释: 从右向左读, 为 01 。因此它不是一...原创 2019-12-16 23:12:14 · 175 阅读 · 0 评论 -
8. 字符串转换整数 (atoi)
8. 字符串转换整数 (atoi) 难度 中等 描述 请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 该字符串除了有...原创 2019-12-13 18:33:06 · 163 阅读 · 0 评论 -
7. 整数反转
7. 整数反转 难度 简单 描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例1 输入: 123 输出: 321 示例2 输入: -123 输出: -321 示例3 输入: 120 输出: 21 注意 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。 代...原创 2019-12-08 17:08:35 · 130 阅读 · 0 评论 -
6. Z 字形变换
6. Z 字形变换 难度 中等 描述 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C I R E T O E S I I G E D H N 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。 请你...原创 2019-12-07 13:14:06 · 190 阅读 · 0 评论 -
5. 最长回文子串
5. 最长回文子串 难度 中等 描述 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例1 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 示例2 输入: "cbbd" 输出: "bb" 代码实现 public class Solut...原创 2019-12-06 01:30:22 · 267 阅读 · 0 评论 -
4. 寻找两个有序数组的中位数
4. 寻找两个有序数组的中位数 难度 苦难 描述 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 示例1 nums1 = [1, 3] nums2 = [2] 则中位数是 2.0 示例2 nums1 = [1, 2] num...原创 2019-12-03 22:11:56 · 156 阅读 · 0 评论 -
3. 无重复字符的最长子串
3. 无重复字符的最长子串 难度 中等 描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例1 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例2 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例3 输入: "pwwkew" 输出: 3 解释:...原创 2019-12-03 22:07:48 · 150 阅读 · 0 评论 -
2. 两数相加
2. 两数相加 难度 中等 描述 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输...原创 2019-12-01 15:10:03 · 195 阅读 · 0 评论 -
1. 两数之和
1. 两数之和 难度 简单 描述 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回...原创 2019-12-01 11:53:24 · 136 阅读 · 0 评论