基础算法
betaberry
cool
展开
-
剑指offer 丑数
题目描述把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。分析看了别人的思路, 感觉挺抽象, 自己又总结了一下…根据已有的丑数数组data, 通过乘上2,3,5, 去生成新的丑数[1] -> [1,2] -> [1,2,3]有3个指针p_2, p_3, p_5, 被指向的数会乘2,3,5, 每个指针都要遍历已有丑数数组, 这样就能保证不漏min(da原创 2020-08-25 11:45:58 · 141 阅读 · 0 评论 -
按层打印 按行打印 二叉树 双队列法
10 / \1 2 / \ 3 5用两个队列, 交替放层中的节点:把root节点放如队列0:队列0: [10]把对列0的节点都拿出来打印, 并把left和right放到队列1:队列1: [1,2]把对列1的节点都拿出来打印, 并把left和right放到队列0:队列0:[3,5]交替进行…每次把队列的元素拿光时, 换行即可public class Solution { public void f(TreeNode..原创 2020-08-23 10:28:18 · 150 阅读 · 0 评论 -
栈运算器 Java实现
顺序是true and false, 运算符在中间状态转移图要想清楚遇到运算符, 如果栈顶是数值就直接压进去, 不要再去读下一个来计算, 因为我们的运算符在中间遇到数值, 这是再从栈中pop, 这时左中右是完整的, 可以进行计算栈顶是or(优先级低), 直接压栈, 以后处理栈顶是and(优先级高), pop两个, 计算完之后把新值压栈最后and都处理完了, 栈里...原创 2020-04-23 12:02:19 · 143 阅读 · 0 评论 -
Trie树 Java实现 内部类
Node每个Node用HashMap来实现, key是char, value是一个内部类DataData有两个成员, next指向下一个Node; isWord表示这个字母是不是单词的结尾内部类的成员和方法即使是private, 外部类也可访问Node有put方法, 用来放入对应的字母, 如果这个字母已经在node里了, 就看看需不需要改isWordNode有getNext方...原创 2020-04-23 00:23:19 · 124 阅读 · 0 评论