
算法
github_zwl
乐观,开朗是我的本性,认真是我的态度
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
力扣102:二叉树的层序遍历
二叉树的层序遍历 1.递归实现 -相同层次的节点归入同一个数组 -传入辅助的level参数决定层次 时间复杂度O(n) 空间复杂度O(n) 2.迭代 -关键词:层次遍历 -模式识别:一旦出现树的层次遍历,都可以用队列作为辅助结构 //二叉树的层序遍历 //递归 dfs func levelOrder1(root *TreeNode) [][]int { ans := [][]int{} var f func(*TreeNode, int) f = func(r *TreeNode,原创 2021-03-02 15:52:54 · 299 阅读 · 0 评论 -
力扣101:对称二叉树
判断二叉树是否对称 给定一棵二叉树,判断琪是否是自身的镜像(即:是否对称) 例如:下面这棵二叉树是对称的 1 /\ 22 /\/\ 3443 下面这棵二叉树不对称。 1 /\ 22 \\ 33 备注: 希望你可以用递归和迭代两种方法解决这个问题 示例1 输入 {1,2,2} 输出 true 示例2 输入 {1,2,3,3,#,2,#} 输出 ...原创 2021-03-01 21:19:17 · 237 阅读 · 0 评论 -
力扣5:最长回文子串
给你一个字符串 s,找到 s 中最长的回文子串。 示例 1: 输入:s = "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。 1.中心扩散法 //中心扩散法 func longestPalindrome(s string) string { if s == `` || len(s) < 2 { return s } start, end := 0, 0 for i := 0; i < len(s); i++ { left1, right1 :=原创 2021-02-27 11:33:26 · 150 阅读 · 0 评论 -
力扣2:两数相加
题目: 给你两个非空 的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0开头。 示例 1: 输入:l1 = [2,4,3], l2 = [5,6,4] 输出:[7,0,8] 解释:342 + 465 = 807. 示例 2: 输入:l1 = [0], l2 = [0] 输出:[0] 示例 3: 输入:l1 = [9,9,9,9,9...原创 2021-02-19 10:33:26 · 129 阅读 · 0 评论 -
力扣96. 不同的二叉搜索树
//1.卡塔兰数 Cn+1 = 2*(2*n+1)/(n+2)Cn func numTrees(n int) int { C := 1 for i := 0; i < n; i++ { C = C * 2 * (2*i + 1) / (i + 2) } return C } //2dp func numTreesDP(n int) int { G := make([]int, n+1) G[0], G[1] = 1, 1 for i := 2; i <= n; i++ {.原创 2021-01-26 13:58:46 · 127 阅读 · 0 评论