LeetCode
李柏林
这个作者很懒,什么都没留下…
展开
-
LeetCode 2. 两数相加(Golang)
给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807原创 2018-10-11 22:40:48 · 582 阅读 · 0 评论 -
LeetCode 19. 删除链表的倒数第N个节点(Golang)
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?/** * Definition for singly-linked list...原创 2018-10-15 19:16:48 · 1079 阅读 · 0 评论 -
LeetCode 258. 各位相加(Golang)
给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。示例:输入: 38输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。进阶:你可以不使用循环或者递归,且在 O(1) 时间复杂度内解决这个问题吗?func addDigits(num int) int { for num > 9 { s...原创 2018-10-22 21:34:00 · 330 阅读 · 0 评论 -
LeetCode 441. 排列硬币(Golang)
你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。给定一个数字 n,找出可形成完整阶梯行的总行数。n 是一个非负整数,并且在32位有符号整型的范围内。示例 1:n = 5硬币可排列成以下几行:¤¤ ¤¤ ¤因为第三行不完整,所以返回2.示例 2:n = 8硬币可排列成以下几行:¤¤ ¤¤ ¤ ¤¤ ¤因为第四行不完整...原创 2018-10-22 21:37:36 · 299 阅读 · 0 评论 -
LeetCode 628. 三个数的最大乘积(Golang)
给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。示例 1:输入: [1,2,3]输出: 6示例 2:输入: [1,2,3,4]输出: 24注意:1.给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]。2.输入的数组中任意三个数的乘积不会超出32位有符号整数的范围。func maximumProduct(nums ...原创 2018-10-22 21:41:16 · 354 阅读 · 0 评论 -
LeetCode 8. 字符串转整数 (atoi)(Golang)
实现 atoi,将字符串转为整数。该函数首先根据需要丢弃任意多的空格字符,直到找到第一个非空格字符为止。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它们对于函数没有影响。当字符串中的第一...原创 2018-10-29 21:56:19 · 1010 阅读 · 0 评论 -
LeetCode 11. 盛最多水的容器(Golang)
给定 n 个非负整数a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝...原创 2018-10-29 22:00:13 · 390 阅读 · 0 评论 -
LeetCode 17. 电话号码的字母组合(Golang)
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "b原创 2018-10-29 22:02:53 · 655 阅读 · 0 评论 -
LeetCode 234. 回文链表(Golang)
请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?思路:遍历链表,将所有节点按顺序存储到map集合中,通过map的键从两头开始遍历对比,值不相等返回false。func isPalindrome(head...原创 2018-11-06 22:10:48 · 539 阅读 · 0 评论 -
LeetCode 414. 第三大的数(Golang)
给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。示例 1:输入: [3, 2, 1]输出: 1解释: 第三大的数是 1.示例 2:输入: [1, 2]输出: 2解释: 第三大的数不存在, 所以返回最大的数 2 .示例 3:输入: [2, 2, 3, 1]输出: 1解释: 注意,要求返回第三大的数,...原创 2018-10-13 18:26:50 · 302 阅读 · 1 评论 -
LeetCode 338. 比特位计数(Golang)
给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。示例 1:输入: 2输出: [0,1,1]示例 2:输入: 5输出: [0,1,1,2,1,2]进阶:给出时间复杂度为O(n*sizeof(integer))的解答非常容易。但你可以在线性时间O(n)内用一趟扫描做到吗?要求算法的空间复杂度为O...原创 2018-10-11 23:13:05 · 436 阅读 · 0 评论 -
LeetCode 7. 反转整数(Golang)
给定一个 32 位有符号整数,将整数中的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。func reverse(x int) int { ...原创 2018-10-11 22:49:09 · 706 阅读 · 0 评论 -
LeetCode 9. 回文数(Golang)
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。进阶:你...原创 2018-10-11 22:52:12 · 480 阅读 · 0 评论 -
LeetCode 20. 有效的括号(Golang)
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false原创 2018-10-11 22:54:58 · 919 阅读 · 4 评论 -
LeetCode 21. 合并两个有序链表(Golang)
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4/** * Definition for singly-linked list. * type ListNode原创 2018-10-11 22:57:09 · 1578 阅读 · 0 评论 -
LeetCode 80. 删除排序数组中的重复项 II(Golang)
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定 nums = [1,1,1,2,2,3],函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。你不需要考虑数组中超出新长度后面的...原创 2018-10-11 23:00:56 · 493 阅读 · 0 评论 -
LeetCode 82. 删除排序链表中的重复元素 II(Golang)
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例 1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2:输入: 1->1->1->2->3输出: 2-原创 2018-10-11 23:02:45 · 393 阅读 · 0 评论 -
LeetCode 83. 删除排序链表中的重复元素(Golang)
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3/** * Definition for singly-linked list. * type原创 2018-10-11 23:05:13 · 402 阅读 · 0 评论 -
LeetCode 104. 二叉树的最大深度(Golang)
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。/** * Definition for a binary tree node. * ...原创 2018-10-11 23:07:22 · 415 阅读 · 0 评论 -
LeetCode 128. 最长连续序列(Golang)
给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。示例:输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。func longestConsecutive(nums []int) int { if len(nums) <= 1 { return len(nums)...原创 2019-07-11 10:42:57 · 516 阅读 · 0 评论