两年前从网上看到一道面试题:用两个栈(Stack)实现一个队列(Queue)。觉得不错,就经常拿来面试,几年下来,做此题的应该有几十人了。通过对面试者的表现和反应,有一些统计和感受,在此做个小结。 用C++…
标签:算法
字符串多模式精确匹配(脏字/敏感词汇搜索算法)——TTMP算法 之理论如此
什么是TTMP算法?不好意思,我发布这篇文章之前,估摸是没有其他地方能找着该算法的,因为那是俺生造的。 TTMP是啥意思呢?是Terminator Triggered Multi-Pattern 的意思,也就是结束符触发…
《算法竞赛入门经典》-【第七章:暴力求解法】-7.4:回溯法
一、问题 把正整数1,2,3…n组成一个环,使得相邻两个整数之和为素数,输出时从整数1开始逆时针排列。n不大于16。 二、思路 最直接的方式是列出所有的素数排列,然后逐个判断是否满足要求,这种方…
java算法【直接插入排序】
public static int[] insertSort(int[] arr) { if(arr == null) { return null; } int size = arr.length; int temp; …
A城一个商人有一头驴子和3000根胡萝卜.要将萝卜拉到1000公里外的B城去卖,只能用驴子驮。已知驴子一次性可驮1000根胡萝卜,但每走一公里要吃掉一根胡萝卜.问商人共可卖出多少胡萝卜?
方法:最在优的利用驴。 假设出 沙漠时有1000根 萝卜,那么在出沙漠之前一定不只1000根,那么至少要驮两次才会出沙漠,那样从出发地到 沙漠边缘都会有往返的里程,那所走的路程将大于3000公里,故最后能卖出…
逆波兰计算器(C语言)
逆波兰算法的表示:所有的运算符都跟在操作数的后面。 (1-2)*(4+5)表示为1 2 – 4 5 + *, 从左到右依次将操作数压入栈中,当运算符到达时,根据运算符从栈中取出相应…
pat1123 Is It a Complete AVL Tree,平衡二叉树的建立,完全二叉树判断,层序
本题解决两个问题,一个是建立平衡二叉树,第二个数判断此二叉树是否为完全二叉树。至于二叉树的层序遍历,可以采用经典的方法,以队列为辅助数据结构,层序输出结点,并且正好可以在这一步里来解决“完全二叉树”的判定。 AVL&nb…
Java实现两个大数相乘
<span style="font-size:18px;">import java.util.Scanner; public class Main { /** * @param args */ public …
在数组中查找一个数并返回其下标
package algorithm.sort.dao;/** * 在指定的数组中查找指定的元素并返回下标 * */public interface ThreadLookupAlgorithm {…
python再计算无限循环小数的循环节
循环节: 如果无限小数的小数点后,从某一位起向右进行到某一位止的一节数字循环出现,首尾衔接,称这种小数为循环小数,这一节数字称为循环节。 #寻找1000以内的n,使得1/n的循环小数节长度最长 #问题化简,首先不是素数的…
Orders - 1731
Orders Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 9954 Accepted: 6053 Desc…
集合数组排序之冒泡
数组排序和集合排序在原理上是一致的,博主看来,集合只是数组的特殊形式。 废话不多说,首先讲一下冒泡的最核心步骤:控制好位置,每次取最值。 怎么理解呢? 我们还是先上代码: public static void lastB…