算法数据结构
炸斯特
2015年毕业于东大,目前在阿里。全栈工程师。如果文章对你有所帮助,请关注支持下我的公众号“贞会说”(ZhenHuiShuo)。我一直在记录自己的职场经验和总结,来看看,对你有用,人生就怕走了弯路,有困惑来交流一下,少走弯路,很重要。
展开
-
java算法之身份证号码验证
调用时直接new IDCard().verify(身份证id);就可以了实现代码如下:public class IDCard { private String _codeError; //wi =2(n-1)(mod 11) final int[] wi = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 1原创 2013-08-24 08:22:45 · 12109 阅读 · 3 评论 -
常见排序算法的稳定性
快速排序、希尔排序、堆排序、直接选择排序不是稳定的排序算法,而基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序是稳定的排序算法首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj, Ai原来在位置前,排序后Ai还是要在Aj位置前。其次,说一下稳定性的好处。排序原创 2013-06-11 22:16:11 · 2063 阅读 · 0 评论 -
LinkedList和ArrayList的区别
LinkedeList和ArrayList都实现了List接口,但是它们的工作原理却不一样。它们之间最主要的区别在于ArrayList是可改变大小的数组,而LinkedList是双向链接串列(doubly LinkedList)。ArrayList更受欢迎,很多场景下ArrayList比LinkedList更为适用。这篇文章中我们将会看看LinkedeList和ArrayList的不同,而且我们试原创 2013-11-03 19:54:04 · 5394 阅读 · 0 评论 -
中缀表达式转换为后缀表达式(栈的使用)
中缀表达式如1*2+(2-1), 其运算符一般出现在操作数之间, 因此称为中缀表达式,也就是大家编程中写的表达式。编译系统不考虑表达式的优先级别, 只是对表达式从左到右进行扫描, 当遇到运算符时, 就把其前面的两个操作数取出, 进行操作。为达到上述目的, 就要将中缀表达式进行改写,变为后缀表达式 如上面的表达式1*2+(2-1), 就变为12*21-+;后缀表达式中不含有括号, 且原创 2013-06-08 10:22:31 · 2068 阅读 · 1 评论 -
每天一道算法_9_由后序遍历和中序遍历求前序遍历
假设一棵二叉树的后序遍历序列为 DGJHEBIFCA ,中序遍历序列为 DBGEHJACIF ,求前序遍历。 整体思路是这样的,由后序遍历找到每个节点,然后由中序遍历判断左右子树,将整个二叉树还原后写出前序遍历。后序遍历的顺序知道,最后一个A是二叉树的根节点,然后把中序遍历从A分成两段,A左边的是左子树,A右边的是右子树,结果如下 然后看右边的子树,从后序遍原创 2014-03-22 08:30:17 · 6007 阅读 · 3 评论 -
每天一道算法_8_DNA Sorting
DescriptionOne measure of ``unsortedness'' in a sequence is the number of pairs of entries that are out of order with respect to each other. For instance, in the letter sequence ``DAABEC'', this mea原创 2013-10-30 17:37:43 · 4266 阅读 · 0 评论 -
每天一道算法_7_Biorhythms
DescriptionSome people believe that there are three cycles in a person's life that start the day he or she is born. These three cycles are the physical, emotional, and intellectual cycles, and they原创 2013-10-12 20:08:49 · 3431 阅读 · 0 评论 -
每天一道算法_2_求高精度幂
今天这个可能有点偷懒,学c++的时候就知道大数计算很复杂,现在一直用java,有幸有大数的方法可以用那么今天的算法就用java偷懒过去吧Description对数值很大、精度很高的数进行高精度计算是一类十分常见的问题。比如,对国债进行计算就是属于这类问题。 现在要你解决的问题是:对一个实数R( 0.0 n),其中n 是整数并且 0 InputT输入包括多组 R 和 n。原创 2013-10-01 10:50:30 · 3960 阅读 · 2 评论 -
每天一道算法_1_放苹果
Description把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。Input第一行是测试数据的数目t(0 Output对输入的每组数据M和N,用一行输出相应的K。Sample Input17 3Sample Output8 解析: 设f(m,n) 为m个原创 2013-09-30 08:26:47 · 6599 阅读 · 5 评论 -
每天一道算法_4_Hangover
此系列刚开始两天就被十一假期打断了,去山西玩了几天,今天刚回来,为了弥补一下心里的貌似隐隐作痛的愧疚感,补上一刀。今天的题目是 Hangover,如下: DescriptionHow far can you make a stack of cards overhang a table? If you have one card, you can create a max原创 2013-10-06 21:44:34 · 2923 阅读 · 0 评论 -
每天一道算法_3_487-3279_对电话号码格式化统计批处理
早上弄了一道求高精度幂的算法,偷懒用了内部类,总觉得过意不去,所以今天重新做了一道算法题,做完心里舒服好多。题目如下: Description企业喜欢用容易被记住的电话号码。让电话号码容易被记住的一个办法是将它写成一个容易记住的单词或者短语。例如,你需要给滑铁卢大学打电话时,可以拨打TUT-GLOP。有时,只将电话号码中部分数字拼写成单词。当你晚上回到酒店,可以通过拨打310-GI原创 2013-10-01 13:46:38 · 4000 阅读 · 1 评论 -
每天一道算法_5_Financial Management
今天的题目更简单,在考虑是不是应该有挑选性的选题目做。题目是Financial Management,如下: DescriptionLarry graduated this year and finally has a job. He's making a lot of money, but somehow never seems to have enough. Larry has原创 2013-10-07 07:24:37 · 3182 阅读 · 0 评论 -
每天一道算法_6_I Think I Need a Houseboat
今天的题目是I Think I Need a Houseboat如下:DescriptionFred Mapper is considering purchasing some land in Louisiana to build his house on. In the process of investigating the land, he learned that the st原创 2013-10-09 14:41:07 · 3001 阅读 · 0 评论 -
图解后缀表达式的计算过程
为了解释后缀表达式的好处,我们先来看看,计算机如何应用后缀表达式计算出最终的结果20的。后缀表达式:9 3 1-3*+ 10 2/+规则:从左到右遍历表达式的每个数字和符号,遇到是数字就进栈,遇到是符号,就将处于栈顶两个数字出栈,进行运算,运算结果进栈,一直到最终获得结果。下面是详细的步骤:1. 初始化一个空栈。此桟用来对要运算的数字进出使用。原创 2013-06-08 10:06:04 · 2256 阅读 · 0 评论