- 博客(22)
- 收藏
- 关注
原创 22力扣算法-二叉树的中序遍历
func inorderTraversal(root *TreeNode) []int { if root == nil { return nil } r1 := inorderTraversal(root.Left) r2 := inorderTraversal(root.Right) return append(append(r1, root.Val), r2...)}
2020-03-22 03:11:41
112
原创 力扣算法21-二叉树的最大深度
func maxDepth(root *TreeNode) int { if root == nil { return 0 } return max(maxDepth(root.Left),maxDepth(root.Right))}func max(a int, b int) int { if a > b { retur...
2020-03-22 01:27:32
120
原创 力扣算法20-对称二叉树
func isMirror(p *TreeNode, q *TreeNode) bool { if p == nil || q == nil { return p == q } return isMirror(p.Left, q.Right) && p.Val == q.Val && isMirror(p.Right, q.Left)}func ...
2020-03-20 00:06:13
132
原创 力扣算法19-相同的树
func isSameTree(p *TreeNode, q *TreeNode) bool { if p==nil && q!=nil { return false } if p!=nil && q==nil { return false } if p==nil && q==nil { return true } i...
2020-03-19 23:54:44
128
原创 力扣算法18-正则表达式匹配
func cmp(m [][]int, s string, i int, p string, j int ) int { if(m[i][j]!=0){ //fmt.Println("i=",i," j=",j," m=",m[i][j]) return m[i][j] } //fmt.Println("i=",i," j=",j)...
2020-03-18 22:59:07
104
原创 力扣算法17-最长回文子串
func longestPalindrome(s string) string { result := "" for i:=0; i < len(s); i++{ leftStr := expandStr(s,i,i) rightStr := expandStr(s,i,i+1) if len(leftStr) > len...
2020-03-17 22:10:06
101
原创 力扣算法16-无重复字符的最长字串
func lengthOfLongestSubstring(s string) int { num, j, t := 0, 0, 0 for i := 0; i < len(s); i++ { t = strings.Index(s[j:i], string(s[i])) if t==-1{ if num<(i-j+1){ num=(i-j+1) } ...
2020-03-15 22:06:09
89
原创 力扣算法15-有效的括号
func isValid(s string) bool { if s == "" { return true } if len(s)%2 == 1 { return false } keyMap := map[string]string{ "}": "{", "]": "[", ")": "(", } var table []string for i := 0;...
2020-03-15 21:34:42
73
原创 力扣14-最长公共前缀
func longestCommonPrefix(strs []string) string { if len(strs) == 0 { return "" } maxLength := len(strs[0]) strNumber := len(strs) for i := 0; i < strNumber; i++ { ...
2020-03-14 00:04:52
89
原创 力扣算法13-罗马数字转整数
func getVal(c rune)int{ switch c{ case 'I': return 1 case 'V': return 5 case 'X': return 10 case 'L': return 50 case 'C': return 100 case 'D': return 500 case 'M': return 1000...
2020-03-13 23:49:40
124
原创 力扣算法12-合并K个排序链表
/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func mergeKLists(lists []*ListNode) *ListNode { min := 100 s := -1 for i :...
2020-03-12 00:00:58
65
原创 力扣算法11-删除链表的倒数第N个节点
func removeNthFromEnd(head *ListNode, n int) *ListNode { dummy := new(ListNode) dummy.Next = head fast, slow := dummy, dummy for i:=0; i<=n ; i++ { fast = fast.Next } ...
2020-03-11 23:42:56
150
原创 力扣算法10-两数相加
func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode { var result *ListNode next := &result s := 0 for l1 != nil || l2 != nil || s > 0 { if l1 != nil { ...
2020-03-10 15:31:18
165
原创 力扣算法9-环形链表
func hasCycle(head *ListNode) bool { if head == nil { return false } p := head m := make(map[*ListNode]bool) for{ if p.Next == nil{ return false ...
2020-03-09 22:17:57
108
原创 力扣算法8-删除排序链表中的重复元素
func deleteDuplicates(head *ListNode) *ListNode { k := head for k != nil && k.Next != nil { if k.Val == k.Next.Val { k.Next = k.Next.Next } else { ...
2020-03-07 23:15:10
107
原创 力扣算法7-合并两个有序链表
func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode { if nil == l1 { return l2 } if nil == l2 { return l1; } if l1.Val < l2.Val { l1.Next = mergeT...
2020-03-07 22:38:49
91
原创 力扣算法6-买卖股票的最佳时机 Ⅲ
func maxProfit(prices []int) int { size := len(prices) if size <= 1 { return 0 } maxK := 2 dp := make([][][]int, size) for i := 0; i < len(dp); i++ { dp[i] = make([][]int, maxK+1) ...
2020-03-07 11:11:48
103
原创 力扣算法5-最接近的三数之和
func threeSumClosest(nums []int, target int) int { sort.Ints(nums) len := len(nums) ans := nums[0] + nums[1] + nums[2] for i := 0 ; i < len - 2 ; i++ { j := i + 1 k ...
2020-03-05 20:16:47
201
原创 力扣算法练习4-三数之和
func threeSum(nums []int) [][]int { if nums == nil || len(nums) < 3 { return nil } sort.Ints(nums) len := len(nums) result := [][]int{} for i := 0 ; i < len - 2 ;...
2020-03-04 21:07:51
158
原创 力扣算法练习3-移除元素
func removeElement(nums []int, val int) int { i:=0 j:=len(nums)-1 for i<=j { if nums[i]==val{ nums[i]=nums[j] j=j-1 }else{ i=i+1 ...
2020-03-03 19:19:00
118
原创 力扣算法练习2-删除排序数组中的重复项
func removeDuplicates(nums []int) int { i:=0 j:=1 for j<len(nums){ if(nums[i] != nums[j]){ nums[i + 1] = nums[j]; i++; } j++; } ...
2020-03-02 14:26:40
115
原创 力扣算法练习1-两数之和
解题思路:创建map映射作为哈希表使用遍历目标数组,获取 target 与 nums[i] 的差值将差值作为 map 的 key ,目标数组的角标当作 value判断 map 中是否包含,如果包含,则返回 map 的 key 为差值的 value 与 i如果 map 中不包含,放入 map 中func twoSum(nums []int, target int) []int { ...
2020-03-01 16:48:28
160
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人