leetcode
平时一些 leetcode 问题分享。
SunnyJim
golang 、docker、k8s、istio
展开
-
leetcode 加一
plus-onefunc plusOne(digits []int) []int { for i := len(digits) - 1; i >= 0; i-- { if digits[i]+1 == 10 { digits[i] = 0 } else { digits[i] += 1 return digits } } return append([]int{1}, digits...)}这个题麻烦的地方就是当等于 10 的时候需要向前进一位。所以不等于原创 2021-03-07 17:34:35 · 92 阅读 · 0 评论 -
leetcode 删除数组中的重复项
remove-duplicates-from-sorted-arrayfunc removeDuplicates(nums []int) int { for i := 0; i < len(nums) -1; { if next := i + 1; nums[i] == nums[next] { nums = append(nums[0:i], nums[next:]...) } else { i++ } } return len(nums)}要求原地删除,直接判原创 2021-03-07 17:00:08 · 109 阅读 · 0 评论 -
leetcode 杨辉三角I
pascals-trianglefunc generate(numRows int) [][]int { if numRows == 0 { return nil } var res [][]int for i := 0; i < numRows; i++ { r := make([]int, 0) for j := 0; j < i+1; j++ { if j == 0 || j == i { r = append(r, 1) } else {原创 2021-01-14 18:15:14 · 73 阅读 · 0 评论 -
leetcode 实现 strStr()
实现 strStr()func strStr(haystack string, needle string) int { h := len(haystack) n := len(needle) if n == 0 { return 0 } else if h < n { return -1 } next := nextArray(needle) index := 0 for i := 0; i < h; i++ { for index > 0 &&a原创 2021-01-21 15:35:39 · 80 阅读 · 0 评论 -
leetcode 最长公共前戳
longest-common-prefixfunc longestCommonPrefix(strs []string) string { if len(strs) < 1 { return "" } // 随便使用一个元素作为基准 head := strs[0] for _, val := range strs { for strings.Index(val, head) != 0 { if len(head) == 0 { return "" } he原创 2021-01-01 21:25:37 · 84 阅读 · 0 评论 -
leetcode 整数反转
reverse-integerfunc reverse(x int) int { y := 0 for x != 0 { y = y*10 + x%10 x /= 10 } if (int32(y)*10)/10 != int32(y) { return 0 } return y}注意 for 中的 if 是为了判断是否溢出。原创 2021-01-01 20:55:58 · 66 阅读 · 0 评论 -
leetcode 存在重复元素
contains-duplicatefunc containsDuplicate(nums []int) bool { ns := make(map[int]int) for _, v := range nums { if _, val := ns[v]; val { return true } ns[v] = v } return false}没有什么需要注意的。直接迭代判断即可。原创 2021-02-05 11:05:10 · 85 阅读 · 0 评论 -
leetcode 合并二叉树
merge-two-binary-treesfunc mergeTrees(t1 *TreeNode, t2 *TreeNode) *TreeNode { if t1 == nil { return t2 } if t2 == nil { return t1 } t1.Val += t2.Val t1.Left = mergeTrees(t1.Left, t2.Left) t1.Right = mergeTrees(原创 2021-02-05 11:22:17 · 94 阅读 · 0 评论 -
leetcode 字符串中的第一个唯一字符
first-unique-character-in-a-stringfunc firstUniqChar(s string) int { strs := make(map[int32]int) for _, v := range s { strs[v]++ } for i, v := range s { if strs[v] == 1 { return i } } return -1}没什么需要注意的。第一次循环记录出现原创 2021-02-08 11:31:06 · 102 阅读 · 0 评论 -
leetcode 回文数
leetcode 回文数palindrome-number字符串解决func isPalindrome(x int) bool { // 排除负数 if x < 0 { return false } str := strconv.Itoa(x) for i := 0; i < len(str)/2; i++ { // 头部匹配尾部, 任意不匹配直接退出 if str[i] != str[len(str)-1-i] { return false } }原创 2020-12-29 22:34:47 · 78 阅读 · 0 评论 -
leetcode 相同的树
same-treefunc isSameTree(p *TreeNode, q *TreeNode) bool { if p == nil && q == nil { return true } if p == nil || q == nil { return false } if p.Val != q.Val { return false } return isSameTree(p.Left, q.Left) && isSameTree(p.R原创 2021-02-17 19:25:18 · 104 阅读 · 0 评论 -
leetcode 杨辉三角 II
pascals-triangle-ii方法 1func getRow1(rowIndex int) []int { rowIndex += 1 var res [][]int for i := 0; i < rowIndex; i++ { r := make([]int, 0) for j := 0; j < i+1; j++ { if j == 0 || j == i { r = append(r, 1) } else { r = append(原创 2021-02-17 20:24:59 · 107 阅读 · 0 评论