-
算法:字典序排序
题目 给定一个整数n,返回从1到n的字典顺序。 示例 给定n=13,返回[1,10,11,12,13,2,3,4,5,6,7,8,9]。 请尽可能的优化算法的时
2021-02-28, Views: 2069 , Topics: 算法
-
算法:二叉树的啮齿形层序遍历(蛇形遍历)
示例 给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 3 / \ 9
2021-02-27, Views: 1626 , Topics: 算法
-
算法:翻转二叉树的左右节点
示例 翻转一棵二叉树。 4 / \ 2 7 / \ / \ 1 3 6 9 输出 4 / \
2021-02-26, Views: 1430 , Topics: 算法
-
算法:买卖股票的最佳时机
题目 给定一个数组prices,它的第i个元素prices[i]表示一支给定股票第i天的价格。 你只能选择某一买入这只股票,并选择在未来的某一个不同的日子卖出该
2021-02-25, Views: 1777 , Topics: 算法
-
算法:无重复字符的最长子串
题目 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 示例一 输入: s = "abcabcbb" 输出: 3 解释: 因为
2021-02-24, Views: 1209 , Topics: 算法
-
算法:数组中的第 K 个最大元素
题目 在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 可以假设k总是有效的,且1
2021-02-23, Views: 1220 , Topics: 算法
-
数据结构:2-3树、B树、B+树、B*树
多路查找树 muitl-way search tree 在二叉树中,每个节点最多有两个子节点。如果允许每个节点可以有更多的数据项和更多的子节点,就是多路查找树,
-
算法:二叉树的层序遍历
要求 例如:以下二叉树按4 2 7 1 3 6 9顺序输出,一层一层输出。 4 / \ 2 7 / \ / \ 1 3
2021-02-21, Views: 1381 , Topics: 算法
-
数据结构:简化平衡二叉树旋转时节点交换的操作
说明 之前文章二叉树左旋、右旋、双旋时替换是new一个临时节点,使用根节点指向不变替换值的方式完成。可参见:https://www.zhangbj.com/p/
2021-02-20, Views: 1536 , Topics: 数据结构
-
数据结构:平衡二叉树的左旋、右旋和双旋
左旋 步骤 以当前节点的值,创建新的节点。 把新的节点的左子节点设置为当前节点的左子节点。 把新的节点的右子节点设置为当前节点的右子节点的左子节点。 把当前节
2021-02-19, Views: 2571 , Topics: 数据结构
-
算法:计算二叉树的高度
Java 实现 public class TreeHeight { public static void main(String[] args) {
2021-02-17, Views: 2048 , Topics: 算法
-
数据结构:平衡二叉树
别称 平衡二叉搜索树:Self-balancing binary search tree。 AVL树:得名于它的发明者G. M. Adelson-Velsky和
2021-02-16, Views: 1178 , Topics: 数据结构
-
算法:二叉排序树的添加、查找和删除
定义节点和二叉排序树 type BinarySortTree struct { root *Node } type Node struct {
2021-02-15, Views: 1492 , Topics: 算法
-
算法:使用深度优先搜索对二叉树遍历、查找和删除
说明 深度优先搜索使用递归实现二叉树的前序,中序和后序遍历、查找和删除。 前序遍历 先输出父节点,再遍历左子树和右子树。 中序遍历 先遍历左子树,再输出父节点,
2021-02-14, Views: 1795 , Topics: 算法
-
数据结构:满二叉树和完全二叉树
满二叉树 如图:所有叶子节点都在最后一层,并且节点总数为2^n-1。n为层数。 完全二叉树 如果该二叉树的所有叶子节点都在最后一层或者倒数第二层,而且最后一
2021-02-13, Views: 2590 , Topics: 数据结构
-
数据结构:树的常用术语
示意图 常用语 节点/节点对象(一个个小圆圈) 根节点/root节点 父节点 子节点 叶子节点 节点的权(节点的值) 路径:从ro
2021-02-11, Views: 1488 , Topics: 数据结构
-
数据结构:哈希表
定义 数组+链表:数组中的每个元素对应一个链表,加入元素时根据hash算法获得对应的数组索引,再插入到该索引对应的元素,即链表的末尾。 代码 func main
2021-02-11, Views: 1994 , Topics: 数据结构
-
算法:二分查找
循环法 func main() { arr := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 9} fmt.
2021-02-10, Views: 1583 , Topics: 算法