Leetcode
不周山的葫芦
这个作者很懒,什么都没留下…
展开
-
Leetcode刷题(8. 字符串转换整数 (atoi))
@[TOC](Leetcode刷题(8. 字符串转换整数 (atoi)))一.题目请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略原创 2020-07-31 23:32:14 · 303 阅读 · 0 评论 -
Leetcode刷题(29. 两数相除)
Leetcode刷题(29. 两数相除)一.题目二.代码(C)三.提交记录四.备注一.题目给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2示例 1::输入: dividend = 10, divisor = 3输原创 2020-07-31 22:47:44 · 194 阅读 · 0 评论 -
Leetcode刷题(4. 寻找两个有序数组的中位数)
Leetcode刷题(4. 寻找两个有序数组的中位数)一.题目二.代码(C)三.提交记录四.备注一.题目给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数...原创 2019-09-18 13:51:31 · 150 阅读 · 0 评论 -
Leetcode刷题(2. 两数相加)
Leetcode刷题(2. 两数相加)一.题目二.代码(C)三.提交记录四.备注一.题目给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -&g...原创 2019-09-18 10:03:11 · 100 阅读 · 0 评论 -
Leetcode刷题(66. 加一)
Leetcode刷题(66. 加一)一.题目二.代码(C)三.提交记录四.备注一.题目给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4...原创 2019-09-09 13:45:31 · 192 阅读 · 0 评论 -
Leetcode刷题(38. 报数)
Leetcode刷题(38. 报数)一.题目二.代码(C)三.提交记录四.备注一.题目报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:示例:1112112111112211 被读作 “one 1” (“一个一”) , 即 11。11 被读作 “two 1s” (“两个一”), 即 21。21 被读作 “one 2”, “one ...原创 2019-09-09 10:49:22 · 102 阅读 · 0 评论 -
Leetcode刷题(13. 罗马数字转整数)
Leetcode刷题(13. 罗马数字转整数)一.题目二.代码(C)三.提交记录四.备注一.题目罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V ...原创 2019-09-06 16:25:12 · 115 阅读 · 0 评论 -
Leetcode刷题(557. 反转字符串中的单词 III)
Leetcode刷题(557. 反转字符串中的单词 III)一.题目二.代码(C)三.提交记录四.备注一.题目给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例 1:输入: “Let’s take LeetCode contest”输出: “s’teL ekat edoCteeL tsetnoc”注意:在字符串中,每个单词由单个空格分隔,并且字...原创 2019-09-06 11:26:20 · 231 阅读 · 0 评论 -
Leetcode刷题(344. 反转字符串)
Leetcode刷题(344. 反转字符串)一.题目二.代码(C)三.提交记录四.备注一.题目编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l...原创 2019-09-06 10:29:50 · 130 阅读 · 0 评论 -
Leetcode刷题(292. Nim 游戏)
Leetcode刷题(292. Nim 游戏)一.题目二.代码(C)三.提交记录四.备注一.题目你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false解释: 如果堆...原创 2019-09-06 10:24:09 · 96 阅读 · 0 评论 -
Leetcode刷题(237. 删除链表中的节点)
Leetcode刷题(237. 删除链表中的节点)一.题目二.代码(C)三.提交记录四.备注一.题目请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第...原创 2019-09-06 08:55:20 · 158 阅读 · 0 评论 -
Leetcode刷题(235. 二叉搜索树的最近公共祖先)
Leetcode刷题(235. 二叉搜索树的最近公共祖先)一.题目二.代码(C)三.提交记录四.备注一.题目给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: roo...原创 2019-09-05 16:24:26 · 125 阅读 · 0 评论 -
Leetcode刷题(231. 2的幂)
Leetcode刷题(231. 2的幂)一.题目二.代码(C)方法一方法二三.提交记录方法一方法二四.备注一.题目给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例 1:输入: 1输出: true解释: 20 = 1示例 2:输入: 16输出: true解释: 24 = 16示例 3:输入: 218输出: false二.代码(C)方法一bool...原创 2019-09-05 09:39:12 · 125 阅读 · 0 评论 -
Leetcode刷题(217. 存在重复元素)
Leetcode刷题(217. 存在重复元素)一.题目二.代码(C)三.提交记录四.备注一.题目给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1...原创 2019-09-04 17:16:57 · 111 阅读 · 0 评论 -
Leetcode刷题(5. 最长回文子串)
Leetcode刷题(5. 最长回文子串)一.题目二.代码(C)三.提交记录四.备注一.题目给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”二.代码(C)int expansion(char* s...原创 2019-09-19 09:34:41 · 121 阅读 · 0 评论 -
Leetcode刷题(8. 字符串转换整数 (atoi))
@[TOC](Leetcode刷题(8. 字符串转换整数 (atoi)))一.题目请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起...原创 2019-09-19 17:02:10 · 88 阅读 · 0 评论 -
Leetcode刷题(62. 不同路径)
Leetcode刷题(62. 不同路径)一.题目二.代码(C)三.提交记录四.备注一.题目一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m 和 n 的值均不超过...原创 2019-10-09 14:45:50 · 116 阅读 · 0 评论 -
Leetcode刷题(61. 旋转链表)
Leetcode刷题(61. 旋转链表)一.题目二.代码(C)三.提交记录四.备注一.题目给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->...原创 2019-09-26 09:31:53 · 161 阅读 · 0 评论 -
Leetcode刷题(59. 螺旋矩阵 II)
Leetcode刷题(59. 螺旋矩阵 II)一.题目二.代码(C)三.提交记录四.备注一.题目给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3输出:[[ 1, 2, 3 ],[ 8, 9, 4 ],[ 7, 6, 5 ]]二.代码(C)/** * Return an array of arrays o...原创 2019-09-26 09:08:51 · 153 阅读 · 0 评论 -
Leetcode刷题(54. 螺旋矩阵)
Leetcode刷题(54. 螺旋矩阵)一.题目二.代码(C)三.提交记录四.备注一.题目给定一个包含 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-09-25 17:04:56 · 154 阅读 · 0 评论 -
Leetcode刷题(46.全排列)
Leetcode刷题(46.全排列)一.题目二.代码(C)三.提交记录四.备注一.题目给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]二.代码(C)/** * Return an array of arrays of size ...原创 2019-09-25 15:44:07 · 225 阅读 · 0 评论 -
Leetcode刷题(43. 字符串相乘)
Leetcode刷题(43. 字符串相乘)一.题目二.代码(C)方法一方法二三.提交记录方法一方法二四.备注方法一方法二一.题目给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = “2”, num2 = “3”输出: “6”示例 2:输入: num1 = “123”, n...原创 2019-09-24 11:28:15 · 153 阅读 · 0 评论 -
Leetcode刷题(415. 字符串相加)
Leetcode刷题(415. 字符串相加)一.题目二.代码(C)三.提交记录四.备注一.题目给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。注意:1.num1 和num2 的长度都小于 5100.2.num1 和num2 都只包含数字 0-9.3.num1 和num2 都不包含任何前导零。4.你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符...原创 2019-09-24 10:36:56 · 152 阅读 · 0 评论 -
Leetcode刷题(33. 搜索旋转排序数组)
Leetcode刷题(33. 搜索旋转排序数组)一.题目二.代码(C)三.提交记录四.备注一.题目假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 ...原创 2019-09-23 14:25:25 · 128 阅读 · 0 评论 -
Leetcode刷题(23. 合并K个排序链表)
Leetcode刷题(23. 合并K个排序链表)一.题目二.代码(C)三.提交记录四.备注一.题目合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6二.代码(C)/** ...原创 2019-09-23 10:25:25 · 147 阅读 · 0 评论 -
Leetcode刷题(16. 最接近的三数之和)
Leetcode刷题(16. 最接近的三数之和)一.题目二.代码(C)三.提交记录四.备注一.题目给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。示例:给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接...原创 2019-09-23 09:52:06 · 152 阅读 · 0 评论 -
Leetcode刷题(15. 三数之和)
Leetcode刷题(15. 三数之和)一.题目二.代码(C)三.提交记录四.备注一.题目给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:...原创 2019-09-20 17:14:09 · 144 阅读 · 0 评论 -
Leetcode刷题(11. 盛最多水的容器)
Leetcode刷题(11. 盛最多水的容器)一.题目二.代码(C)方法一方法二三.提交记录方法一方法二四.备注方法一方法二一.题目给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜...原创 2019-09-20 10:17:47 · 155 阅读 · 0 评论 -
Leetcode刷题(122. 买卖股票的最佳时机 II)
Leetcode刷题(122. 买卖股票的最佳时机 II)一.题目二.代码(C)方法一方法二三.提交记录方法一方法二四.备注一.题目给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,...原创 2019-09-03 16:20:58 · 145 阅读 · 0 评论 -
Leetcode刷题(14. 最长公共前缀)
Leetcode刷题(14. 最长公共前缀)一.题目二.代码(C)三.提交记录四.备注一.题目编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。...原创 2019-09-03 15:35:31 · 198 阅读 · 0 评论 -
Leetcode刷题(9. 回文数)
Leetcode刷题(9. 回文数)一.题目二.代码(C)方法一方法二三.提交记录方法一方法二四.备注一.题目判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。...原创 2019-09-03 11:29:46 · 130 阅读 · 0 评论 -
Leetcode刷题(198. 打家劫舍)
Leetcode刷题(198. 打家劫舍)一.题目二.代码(C)三.提交记录四.备注一.题目你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入...原创 2019-08-21 09:17:06 · 93 阅读 · 0 评论 -
Leetcode刷题(169. 求众数)
Leetcode刷题(169. 求众数)一.题目二.代码(C)三.提交记录四.备注一.题目给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 1::输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2二.代码(C)int m...原创 2019-08-20 11:02:22 · 112 阅读 · 0 评论 -
Leetcode刷题(160. 相交链表)
Leetcode刷题(160. 相交链表)一.题目二.代码方法一方法二三.提交记录方法一方法二四.备注一.题目编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出...原创 2019-08-19 14:58:52 · 173 阅读 · 0 评论 -
Leetcode刷题(155.最小栈)
Leetcode刷题(155.最小栈)一.题目二.代码(C)三.提交记录四.备注一.题目设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) – 将元素 x 推入栈中。pop() – 删除栈顶的元素。top() – 获取栈顶元素。getMin() – 检索栈中的最小元素。示例:MinStack minStack = new MinSta...原创 2019-08-19 11:25:23 · 158 阅读 · 0 评论 -
Leetcode刷题(121. 买卖股票的最佳时机)
Leetcode刷题(121. 买卖股票的最佳时机)一.题目二.代码(C)方法一方法二三.提交记录方法一方法二四.备注一.题目给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第...原创 2019-08-14 09:19:20 · 141 阅读 · 0 评论 -
Leetcode刷题(53.最大子序和)
Leetcode刷题(53.最大子序和)一.题目二.代码(C)三.提交记录四.备注一.题目给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使...原创 2019-06-24 16:23:23 · 152 阅读 · 0 评论 -
Leetcode刷题(21.合并两个有序链表)
Leetcode刷题(21.合并两个有序链表)一.题目二.代码(C)三.提交记录四.备注一.题目将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4二.代码(C)/** * Definition for ...原创 2019-06-24 14:54:37 · 151 阅读 · 0 评论 -
Leetcode刷题(101.对称二叉树)
Leetcode刷题(101.对称二叉树)一.题目二.代码(C)三.提交记录四.备注一.题目给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。示例: 1 / \ 2 2 / \ / \ 3 4 4 3但是...原创 2019-06-26 09:27:19 · 242 阅读 · 0 评论 -
Leetcode刷题(70.爬楼梯)
Leetcode刷题(70.爬楼梯)一.题目二.代码(C)方法一:方法二:三.提交记录四.备注一.题目假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例2:输入: 3输出: 3解...原创 2019-06-25 15:18:27 · 184 阅读 · 0 评论