摘要: 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 说明: 叶子节点是指没有子节点的节点。 func pathSum(root *TreeNode, sum int) [][]int { ret := [][]int{} path := []int{} dfs(&r 阅读全文
posted @ 2021-02-26 15:41 布尔先生 阅读(126) 评论(0) 推荐(0)
摘要: 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 func mergeKLists(lists []*ListNode) *ListNode { if len(lists)==0{ return nil } if len(lists) == 1{ 阅读全文
posted @ 2021-02-26 15:29 布尔先生 阅读(196) 评论(0) 推荐(0)
摘要: 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 func spiralOrder(matrix [][]int) []int { if len(matrix) == 0 { return []int{} } dir := 1 row, col := 阅读全文
posted @ 2021-02-26 15:27 布尔先生 阅读(221) 评论(0) 推荐(0)
摘要: 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 func maxSubArray(nums []int) int { if len(nums)==1{ return nums[0] } dp := make([]int,len(nums)) d 阅读全文
posted @ 2021-02-26 15:21 布尔先生 阅读(178) 评论(0) 推荐(0)
摘要: 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 func addStrings(num1 string, num2 string) string { nb1, nb2 := []byte(num1), []byte(num2) if len(nb1) < len(nb2) { 阅读全文
posted @ 2021-02-26 15:15 布尔先生 阅读(1160) 评论(0) 推荐(0)
摘要: 给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 /** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeN 阅读全文
posted @ 2021-02-26 15:12 布尔先生 阅读(194) 评论(0) 推荐(0)
摘要: 编写一个程序,找到两个单链表相交的起始节点。 func getIntersectionNode(headA, headB *ListNode) *ListNode { curA,curB := headA,headB for curA != curB { if curA == nil { // 如果 阅读全文
posted @ 2021-02-26 15:11 布尔先生 阅读(118) 评论(0) 推荐(0)
摘要: 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 阅读全文
posted @ 2021-02-26 15:00 布尔先生 阅读(364) 评论(0) 推荐(0)
摘要: 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 func threeSum(nums []int) [][]int { sort.Ints( 阅读全文
posted @ 2021-02-26 14:17 布尔先生 阅读(272) 评论(0) 推荐(0)
摘要: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 解法:双指针 func lengthOfLongestSubstring(s string) int { start 阅读全文
posted @ 2021-02-26 14:14 布尔先生 阅读(188) 评论(0) 推荐(0)
摘要: 题目: 有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。 给定一个整数数 输入 [1,3,5,2,2],5,3 返回值 给定数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。 解法1:快排 func findKth( a []int , n int 阅读全文
posted @ 2021-02-26 14:03 布尔先生 阅读(533) 评论(0) 推荐(0)