
leetcode
奔跑の河马
滴水可石穿,跬步致千里
展开
-
Leetcode解题之路(golang版):1 两数之和(Two Sum)
1.两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解...原创 2019-05-08 21:21:32 · 774 阅读 · 1 评论 -
Leetcode解题之路(golang版):66. 加一(Plus One)
66. 加一给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。...原创 2019-05-28 22:20:10 · 314 阅读 · 0 评论 -
Leetcode解题之路(golang版):69. x 的平方根(Sqrt(x))
69. x 的平方根实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。解法一:空间复杂度:$O(1)$时间复杂度:$O(...原创 2019-06-01 10:14:36 · 1813 阅读 · 0 评论 -
Leetcode解题之路(golang版):70. 爬楼梯(Climbing Stairs)
70. 爬楼梯假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. ...原创 2019-06-01 10:51:02 · 319 阅读 · 0 评论 -
Leetcode解题之路(golang版)汇总
题号题目名称题目答案链接1两数之和(Two Sum)https://blog.youkuaiyun.com/myz123321/article/details/899755987整数翻转(Reverse Integer)https://blog.youkuaiyun.com/myz123321/article/details/899758109回文数(Palindrome Nu...原创 2019-06-01 11:12:49 · 2139 阅读 · 1 评论 -
Leetcode解题之路(golang版):83. 删除排序链表中的重复元素(Remove Duplicates from Sorted List)
83. 删除排序链表中的重复元素给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3解法一:没什么好说的,直接遍历去重就好空间复杂度:$O(1)$时间复杂度:$O(n)$/** * Defin...原创 2019-06-02 10:04:54 · 210 阅读 · 0 评论 -
Leetcode解题之路(golang版):88. 合并两个有序数组(Merge Sorted Array)
88. 合并两个有序数组给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = ...原创 2019-06-02 10:06:04 · 654 阅读 · 0 评论 -
Leetcode解题之路(golang版):100. 相同的树(Same Tree)
100. 相同的树给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: ...原创 2019-06-02 10:07:19 · 334 阅读 · 0 评论 -
Leetcode解题之路(golang版):2. 两数相加(Add Two Numbers)
2. 两数相加给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> ...原创 2019-06-02 10:42:30 · 523 阅读 · 0 评论 -
Leetcode解题之路(golang版):3. 无重复字符的最长子串(Longest Substring Without Repeating Characters)
3. 无重复字符的最长子串给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重...原创 2019-06-02 15:00:20 · 342 阅读 · 0 评论 -
Leetcode解题之路(golang版):41. 缺失的第一个正数(First Missing Positive)
41. 缺失的第一个正数给定一个未排序的整数数组,找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1说明:你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间。解法一:排序法空间复杂度:$O(n)$...原创 2019-07-23 21:48:03 · 237 阅读 · 0 评论 -
Leetcode解题之路(golang版):58. 最后一个单词的长度(Length of Last Word)
58. 最后一个单词的长度给定一个仅包含大小写字母和空格 ’ ’ 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: "Hello World"输出: 5解法一:调库函数法空间复杂度:$O(n)$时间复杂度:$O(n)$//话不多说 先偷鸡 直接掉库函数//但是要注意需要去掉末尾多...原创 2019-05-28 22:18:47 · 320 阅读 · 0 评论 -
Leetcode解题之路(golang版):53. 最大子序和(Maximum Subarray)
53. 最大子序和给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。解不出来法一:空间复杂度:$O(1)$时间复...原创 2019-05-28 21:31:26 · 484 阅读 · 0 评论 -
Leetcode解题之路(golang版):67. 二进制求和(Add Binary)
67. 二进制求和给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例 1:输入: a = "11", b = "1"输出: "100"示例 2:输入: a = "1010", b = "1011"输出: "10101"解法一:空间复杂度:$O(n)$时间复杂度:$O(n)$//由于golang中字符串转换太过于麻烦//所...原创 2019-05-30 22:01:18 · 616 阅读 · 0 评论 -
Leetcode解题之路(golang版):7 整数翻转(Reverse Integer)
7.整数翻转给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21解法一:空间复杂度:$O(1)$时间复杂度:$O(n)$//一开始考虑到判断是否溢出通过ans的值是否和slice切片相对应,但是发现golang int是64位不会...原创 2019-05-08 21:24:41 · 462 阅读 · 0 评论 -
Leetcode解题之路(golang版):9 回文数(Palindrome Number)
9.回文数判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。...原创 2019-05-08 21:48:36 · 306 阅读 · 0 评论 -
Leetcode解题之路(golang版):35. 搜索插入位置(Search Insert Position)
35. 搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0...原创 2019-05-13 22:16:12 · 228 阅读 · 0 评论 -
Leetcode解题之路(golang版):38. 报数(Count and Say)
38. 报数报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 12. 113. 214. 12115. 1112211 被读作 "one 1" ("一个一") , 即 11。11 被读作 "two 1s" ("两个一"), 即 21。21 被读作 "one 2", "one 1" ("一个二" ,...原创 2019-05-14 14:21:40 · 330 阅读 · 0 评论 -
Leetcode解题之路(golang版):13 罗马数字转整数(Roman to Interge)
13. 罗马数字转整数罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ...原创 2019-05-09 21:11:16 · 302 阅读 · 0 评论 -
Leetcode解题之路(golang版):14 最长公共前缀(Longest Common Prefix)
14. 最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。解法一:空间复杂度:$O(1)$...原创 2019-05-09 21:12:38 · 431 阅读 · 0 评论 -
Leetcode解题之路(golang版):20 有效的括号(Valid Parentheses)
20. 有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false示...原创 2019-05-10 19:36:06 · 475 阅读 · 0 评论 -
Leetcode解题之路(golang版):26. 删除排序数组中的重复项(Remove Duplicates from Sorted Array)
26. 删除排序数组中的重复项给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后...原创 2019-05-10 21:53:27 · 432 阅读 · 0 评论 -
Leetcode解题之路(golang版):27. 移除元素(Remove Element)
27. 移除元素给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums ...原创 2019-05-12 00:42:09 · 352 阅读 · 0 评论 -
Leetcode解题之路(golang版):28. 实现strStr()(Implement strStr())
28. 实现strStr()实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa...原创 2019-05-12 21:05:14 · 324 阅读 · 0 评论 -
Leetcode解题之路(golang版):5. 最长回文子串(Longest Palindromic Substring)
5. 最长回文子串给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"解法一:中心扩散法空间复杂度:$O(1)$时间复杂度:$O(n2)$func longestPalindrome(s string...原创 2019-07-21 22:35:40 · 585 阅读 · 0 评论