数据结构与算法
未来可期☺
这个作者很懒,什么都没留下…
展开
-
堆栈常见相关问题
堆栈 用数组结构实现大小固定的队列和栈 用数组结构实现队列结构 public class ArrayQueue { private Integer [] arr; private int size; private int first; private int end; //初始化队列 public void ArrayQueue(int i...原创 2019-05-19 07:40:22 · 422 阅读 · 0 评论 -
算法之堆栈问题
# 堆栈 标签(空格分隔): 算法 用数组结构实现大小固定的队列和栈 用数组结构实现队列结构 public class ArrayQueue { private Integer [] arr; private int size; private int first; private int end; //初始化队列 public void ...原创 2019-05-18 15:24:02 · 547 阅读 · 0 评论 -
排序算法
# 排序 关于衡量一个算法的好坏标准----时间复杂度 常数时间的操作:一个操作如果和数据量没有关系,每次都是固定时间内完成的操作,叫做常数操作。 时间复杂度为一个算法流程中,常数操作数量的指标。常用O(读作bigO)来表示。具体来说,在常数操作数量的表达式中,只要高阶项,不要低阶项,也不要高阶项的系数,剩下的部分如果记为f(N),那么时间复杂度为O(f(N))。评价一个算法流程的好坏,先看时...原创 2019-05-18 15:25:16 · 313 阅读 · 0 评论 -
暴力递归和动态规划
# 暴力递归和动态规划 求n!的结果 思路:要求n!,则要先求出(n-1)!,n*(n-1)! 即为n!的结果。要求(n-1)!,则要先······ 代码public class Factorial { public static int factorial(int num) { if (num == 1) { return 1; ...原创 2019-05-18 15:27:23 · 225 阅读 · 0 评论 -
数据结构之树相关的问题
# 树 实现二叉树的先序、中序、后序遍历,包括递归方式和非递归方式 递归方式:略 非递归方式 先序遍历:先打印头结点,若头结点的右孩子不为空则先将右孩子压栈,然后再看其左孩子是否为空,若不为空将左孩子压栈,然后再将栈顶弹出打印。让头结点等于弹出的栈顶节点,再重复上述过程,直到栈为空为止。 中序遍历:先将头结点压栈,若左孩子不为空,则将左孩子压栈,然后再看左孩子的左孩子是否为空,若不为空则将其...原创 2019-05-18 15:30:39 · 363 阅读 · 0 评论 -
算法之矩阵
# 矩阵问题 转圈打印矩阵 【题目】 给定一个整型矩阵matrix,请按照转圈的方式打印它。 例如: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 打印结果为:1,2,3,4,8,12,16,15,14,13,9,5,6,7,11, 10 【要求】 额外空间复杂度为O(1)。 整体思想:从外圈向内圈逐层打印 代码package day03; publ...原创 2019-05-18 15:34:11 · 1228 阅读 · 0 评论 -
典型的贪心问题
# 贪心问题 一块金条切成两半,是需要花费和长度数值一样的铜板的。比如长度为20的金条,不管切成长度多大的两半,都要花费20个铜板。一群人想整分整块金条,怎么分最省铜板?例如,给定数组{10,20,30},代表一共三个人,整块金条长度为10+20+30=60.金条要分成10,20,30三个部分。如果,先把长度60的金条分成10和50,花费60再把长度50的金条分成20和30,花费50,一共花费...原创 2019-05-18 15:35:31 · 281 阅读 · 0 评论