
算法
文章平均质量分 50
jaguar01
无我即有我
展开
-
linkList解二叉树的锯齿形层次遍历
问题描述。 给出一棵二叉树,返回其节点值的锯齿形层次遍历(先从左往右,下一层再从右往左,层与层之间交替进行) 您在真实的面试中是否遇到过这个题? Yes 样例 给出一棵二叉树 {3,9,20,#,#,15,7},3/ \ 9 20 / \ 15 7 返回其锯齿形的层次遍历为:[ [3], [20,9], [15,7] ]...原创 2018-04-07 14:03:13 · 2572 阅读 · 0 评论 -
剑指offer算法系列
大数相加 实现任意两个整数的加法当数字大到超过long的范围后是会发生溢出的,所以在这里把它当作字符串进行处理。按照正常的思路,我们自己在计算数字相加的时候,从低位开始,每次记录当前的进位,与下两个数字相加。 代码如下:public static String BigNumberPlus(String one,String two){ int lengthOne =...原创 2018-08-19 21:17:41 · 368 阅读 · 0 评论 -
基于凯撒密码和维吉尼亚密码的改进密码算法
设计要求: 利用古典密码算法的思想,设计一种新密码算法,使用编程语言对上述密码算法进行实现,并利用差分密码分析方法对设计的密码算法进行分析。系统环境: ubuntu16.4系统、Java。实现描述: 基于凯撒密码和维吉尼亚密码的改进密码算法。 凯撒密码是一种简单的替换加密的技术,我们由单一的凯撒密码可以扩展出多表密码,...原创 2018-07-07 23:38:35 · 5448 阅读 · 0 评论 -
经典算法问题之指针碰撞系列
注释(Q:question、A:answer、C:code) Q(1):数组里面只有0,1,2,排成顺序的数组 A:最简单的方法是遍历(简单到不敢相信,当然这不是最好的方法); 三路快排的方法。 C:/**三路快排 * 数组里面有3种数字,0,1,2 * 排成顺序 * 时间复杂度 o(n) * 空间为 o(1) */public static void main...原创 2018-06-06 17:16:17 · 4761 阅读 · 0 评论 -
两个栈(数据栈+空栈)如何实现排序?
分析: 无论是从小到大排序,还是从大到小排序,重要的是按照层次找出最大(最小数)。 数据栈 stack 辅助栈 help 设置游标数cur每次help中的数比cur大,则弹出,然后再push进cur(小)。 一次循环,也就是help中的都时push进(从小到大的数,即小数压底)。 直到stack弹空,在将help中的数压入stack,便完成了小数先输出的任务(后进先出)代码如下...原创 2018-05-03 20:28:41 · 4311 阅读 · 0 评论 -
二叉树的构建 --- 已知(前序,中序,后序)中两个条件
问题如下输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。分析 – 已知前序和后序 对于二叉树反向求解,认准递归是王道public class TreeNode{ private int ...原创 2018-04-24 19:26:01 · 4113 阅读 · 0 评论 -
小熊吃糖与Map排序问题
拼多多校招题: 小熊吃糖时间限制:1秒空间限制:32768K有n只小熊,他们有着各不相同的战斗力。每次他们吃糖时,会按照战斗力来排,战斗力高的小熊拥有优先选择权。前面的小熊吃饱了,后面的小熊才能吃。每只小熊有一个饥饿值,每次进食的时候,小熊们会选择最大的能填饱自己当前饥饿值的那颗糖来吃,可能吃完没饱会重复上述过程,但不会选择吃撑。现在给出n只小熊的战斗力和饥饿值,并且给出m颗糖能填...原创 2018-09-01 16:41:12 · 426 阅读 · 0 评论