![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Leetcode
文章平均质量分 50
寒云似雾7
California Dream
展开
-
【leetcode15】三数之和 Java题解
leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums ...原创 2019-07-24 21:09:30 · 165 阅读 · 0 评论 -
【leetcode498】对角线遍历java题解
【leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解】给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。示例:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,4,7,...原创 2019-04-03 13:16:56 · 472 阅读 · 0 评论 -
【leetcode155】最小栈 Java题解
leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x)-- 将元素 x 推入栈中。 pop()-- 删除栈顶的元素。 top()-- 获取栈顶元素。 getMin() ...原创 2019-04-08 13:14:54 · 355 阅读 · 0 评论 -
【leetcode279】完全平方数 Java题解
leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解给定正整数n,找到若干个完全平方数(比如1, 4, 9, 16, ...)使得它们的和等于n。你需要让组成和的完全平方数的个数最少。示例1:输入: n = 12输出: 3 解释: 12 = 4 + 4 ...原创 2019-04-08 12:59:07 · 1033 阅读 · 0 评论 -
【leetcode752】打开转盘锁 Java题解
leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字:'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'。每个拨轮可以自由旋转:例如把'9'变为'0','0'变为...原创 2019-04-08 08:03:15 · 453 阅读 · 0 评论 -
【leetcode200】岛屿的个数 Java题解
leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解给定一个由'1'(陆地)和'0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。示例 1:输入:11110110...原创 2019-04-07 19:03:52 · 972 阅读 · 0 评论 -
【leetcode622】设计循环队列 Java题解
leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普...原创 2019-04-07 18:59:14 · 751 阅读 · 0 评论 -
【leetcode61】旋转链表 Java题解
leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解给定一个链表,旋转链表,将链表每个节点向右移动k个位置,其中k是非负数。示例1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1...原创 2019-04-07 18:57:07 · 233 阅读 · 0 评论 -
【leetcode138】复制带随机指针的链表 Java题解
leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的深拷贝。示例:输入:{"$id":"1","next":{"$id":"2","next"...原创 2019-04-07 18:51:41 · 533 阅读 · 0 评论 -
【leetcode430】扁平化多级双向链表 Java题解
leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解您将获得一个双向链表,除了下一个和前一个指针之外,它还有一个子指针,可能指向单独的双向链表。这些子列表可能有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。扁平化列表,使所有结点出现在单级双链表中。您将...原创 2019-04-05 17:10:54 · 265 阅读 · 0 评论 -
【leetcode2】两数相加 Java题解
leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字...原创 2019-04-05 17:04:03 · 535 阅读 · 2 评论 -
【leetcode118】杨辉三角java题解
【leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解】给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,...原创 2019-04-03 13:21:44 · 268 阅读 · 0 评论 -
【leetcode344】反转字符串java题解
【leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解】编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 AS...原创 2019-04-03 13:24:02 · 193 阅读 · 0 评论 -
【leetcode561】数组拆分 I java题解
【leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解】给定长度为 2n 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), …, (an, bn) ,使得从1 到 n 的 min(ai, bi) 总和最大。示例 1:输入: [1,4,3,2]...原创 2019-04-03 13:28:12 · 366 阅读 · 0 评论 -
【leetcode94】二叉树的中序遍历 Java题解
leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解给定一个二叉树,返回它的中序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]进阶:递归算法很简单,你可以通过迭代算法完成吗...原创 2019-04-28 15:42:11 · 1420 阅读 · 0 评论 -
【leetcode494】目标和 Java题解
leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解给定一个非负整数数组,a1, a2, ..., an, 和一个目标数,S。现在你有两个符号+和-。对于数组中的任意一个整数,你都可以从+或-中选择一个符号添加在前面。返回可以使最终数组和为目标数 S 的所...原创 2019-04-28 15:35:47 · 729 阅读 · 0 评论 -
【leetcode150】逆波兰表达式求值 Java题解
leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解根据逆波兰表示法,求表达式的值。有效的运算符包括+,-,*,/。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有...原创 2019-04-28 14:28:53 · 660 阅读 · 0 评论 -
【leetcode739】每日温度 Java题解
leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解根据每日气温列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高的天数。如果之后都不会升高,请输入0来代替。例如,给定一个列表temperatures = [73, 74, 75, 71, 69...原创 2019-04-28 14:19:09 · 768 阅读 · 0 评论 -
【leetcode20】有效的括号 Java题解
leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解给定一个只包括'(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。...原创 2019-04-28 14:04:29 · 276 阅读 · 0 评论 -
【leetcode189】旋转数组 Java题解
【leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势 每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解】给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,...原创 2019-04-03 14:42:58 · 338 阅读 · 0 评论 -
【leetcode209】长度最小的子数组 java题解
【leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势 每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解】给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。示例:输入: s = 7, nums = [2,3,1,2,4,3]输出: ...原创 2019-04-03 14:38:16 · 453 阅读 · 0 评论 -
【leetcode485】最大连续1的个数 java题解
【leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势 每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解】给定一个二进制数组, 计算其中最大连续1的个数。示例 1:输入: [1,1,0,1,1,1]输出: 3解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.注意:输入的数组只包含 0 和1。输入数组...原创 2019-04-03 14:31:52 · 381 阅读 · 0 评论 -
【leetcode27】移除元素 java题解
【leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势 每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解】给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需...原创 2019-04-03 14:28:24 · 497 阅读 · 0 评论 -
【leetcode167】两数之和 II - 输入有序数组 java题解
【leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解】给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index...原创 2019-04-03 13:30:55 · 166 阅读 · 0 评论 -
【leetcode21】合并两个有序链表 Java题解
leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->...原创 2019-04-05 16:39:09 · 237 阅读 · 0 评论 -
【leetcode234】回文链表 Java题解
leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用O(n) 时间复杂度和 O...原创 2019-04-05 16:22:23 · 172 阅读 · 0 评论 -
【leetcode328】奇偶链表 Java题解
leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nod...原创 2019-04-05 16:11:05 · 224 阅读 · 0 评论 -
【leetcode数组和字符串】最大连续1的个数
给定一个二进制数组, 计算其中最大连续1的个数。示例 1:输入: [1,1,0,1,1,1]输出: 3解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.注意:输入的数组只包含 0 和1。输入数组的长度是正整数,且不超过 10,000。C++题解class Solution {public: int findMaxConsecutiveOnes(vec...原创 2018-12-09 17:19:20 · 393 阅读 · 0 评论 -
【leetcode数组和字符串】实现strStr()
实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle = “bba...原创 2018-12-09 16:56:12 · 138 阅读 · 0 评论 -
【leetcode数组和字符串】移除元素
给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为...原创 2018-12-08 17:06:00 · 219 阅读 · 0 评论 -
【leetcode数组和字符串】两数之和 II - 输入有序数组
给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15], targe...原创 2018-12-08 16:11:15 · 159 阅读 · 0 评论 -
【leetcode数组和字符串】 数组拆分 I
给定长度为 2n 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), …, (an, bn) ,使得从1 到 n 的 min(ai, bi) 总和最大。示例 1:输入: [1,4,3,2]输出: 4解释: n 等于 2, 最大总和为 4 = min(1, 2) + min(3, 4).提示:n 是正整数,范围在 [1, 10000].数组中的元素...原创 2018-12-08 14:59:31 · 221 阅读 · 0 评论 -
【leetcode数组和字符串】最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。C++解法class Solution {public:...原创 2018-12-06 11:47:53 · 151 阅读 · 0 评论 -
【leetcode数组和字符串】二进制求和
给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例 1:输入: a = “11”, b = “1”输出: “100”示例 2:输入: a = “1010”, b = “1011”输出: “10101”C++解法class Solution {public: string addBinary(string a, string...原创 2018-12-05 21:20:12 · 301 阅读 · 0 评论 -
【leetcode数组和字符串】螺旋矩阵
给定一个包含 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],[5, 6, 7, 8],[9,10,11,12]]输出: [1,2,3,4,8,1...原创 2018-12-02 17:34:50 · 261 阅读 · 0 评论 -
【leetcode数组和字符串】加一
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。最高位进位若...原创 2018-11-29 23:52:28 · 277 阅读 · 0 评论 -
【leetcode数组和字符串】 至少是其他数字两倍的最大数
在一个给定的数组nums中,总是存在一个最大元素 。查找数组中的最大元素是否至少是数组中每个其他数字的两倍。如果是,则返回最大元素的索引,否则返回-1。示例 1:输入: nums = [3, 6, 1, 0]输出: 1解释: 6是最大的整数, 对于数组中的其他整数,6大于数组中其他元素的两倍。6的索引是1, 所以我们返回1.示例 2:输入: nums = [1, 2, 3, 4]...原创 2018-11-29 19:55:49 · 259 阅读 · 0 评论 -
leetcode494 目标和 关于动态规划思想的解释(小白版
给定一个非负整数数组,a1, a2, …, an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。返回可以使最终数组和为目标数 S 的所有添加符号的方法数。示例 1:输入: nums: [1, 1, 1, 1, 1], S: 3输出: 5解释:-1+1+1+1+1 = 3+1-1+1+1+1 = 3+1+1...原创 2019-03-15 08:29:57 · 258 阅读 · 0 评论 -
【leetcode119】杨辉三角 II Java题解
【leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解】给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 3输出: [1,3,3,1]进阶:你可以优化你的算法到 O(k) 空间复杂度吗?cla...原创 2019-04-04 19:35:37 · 484 阅读 · 0 评论 -
【leetcode151】翻转字符串里的单词 Java题解
【leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解】给定一个字符串,逐个翻转字符串中的每个单词。示例 1:输入: “the sky is blue”输出: “blue is sky the”示例 2:输入: " hello world! "输出: “world! h...原创 2019-04-04 19:44:06 · 980 阅读 · 0 评论