问题1:给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0。 思路: 这个主要是判断各个数字中5的个数,因为5和偶数相乘以后可以得到10,相当于…
标签:编程之美
编程之美--最短摘要的生成
题目:抽象点说,就是在一个字符串中,找一些目标字符串,找到包含所有目标字符串的最小字符串。题目虽然叫做最短摘要生成,但和实际的搜索snippet的计算还是有比较大的差距的。 解法:一种比较好的解法,策略还是使用双指针。 …
编程之美:第一章 1.15构造数独
/* 构造数独: 数独的棋盘是由九九八十一个小方格组成的。玩家在每个小格子中,分别天上1至9的任意一个数字,让整个棋盘每一行,每一列,以及每一个3*3的小矩阵中的数字都不 重复。 使用一个二维数组来存储,每一个元素对应数…
编程之美 3.2 :电话号码对应的英文单词
题干 对如非全键盘的手机上的数字,每个数字都对应一些字母,比如2对应ABC,3对应DEF………,8对应TUV,9对应WXYZ,要求对一段数字,输出其代表的所有可能的字母组合,如5869…
编程之美——快速找出机器故障问题
题目: 简化后问题:有很多机器id,其中只有一个或两个id被丢失,正常情况下每个id个数为2,请问如何找到丢失的id是几。 java解法一实现: /** * 使用异或操作 X异或X等于0,X异或0等于X,…
编程之美--双线程高效下载
一,题目 网络上下载数据,然后存储到硬盘上。简单做法是:先下载一块然后写到硬盘,然后再下载,再写到硬盘上。 …
Java 并发编程之美:并发编程高级篇之三
借用 Java 并发编程实践中的话:编写正确的程序并不容易,而编写正常的并发程序就更难了。相比于顺序执行的情况,多线程的线程安全问题是微妙而且出乎意料的,因为在没有进行适当同步的情况下多线程中各个操作的顺序是不可预期的。…
编程之美3.7——队列中取最大值操作问题
问题: 假设有这样一个拥有3个操作的队列: 1. EnQueue(v): 将v加入队列中 2. DeQueue(): 使队列中的队首元素删除并返回此元素 3. MaxElement: 返回队列中的最大元素 设计一种数据结…
《编程之美》一摞烙饼问题探讨
《编程之美》一摞烙饼问题探讨 这类问题我最早遇到是厨师摆盘子问题,就是厨师要把一个架子上的盘子按照从大到小排列,只能象本题中翻动烙饼的方式翻动盘子,当时我给出了这样的答案: int FindMaxIdx(int *pDi…
编程之美2.5 寻找第k大的数
参考+理解 名称是:设计一组N个数,确定其中第k个最大值,这是一个选择问题,当然,解决这个问题的方法很多,本人在网上搜索了一番,查找到以下的方式,觉得很好,推荐给大家。  …
《编程之美》学习笔记——2.17数组循环移位
一、问题 设计一个算法,把一个含有N个元素的数组循环右移K位,要求时间复杂度为O(N),且只允许使用两个附加变量。 问题分析: 输入:长度为N的原数组,K 输出:循环右移K位后的数组 …
2016 BOP 编程之美复赛心得
战况 今年我的的编程之美之旅到这里就会止步了,回想上个星期满脑子都是各种Id,想了各种各样的优化技巧,最后在测试的时候一直在前20,加了缓存是前5。 然而在最终评审的时候还是败下阵来,仔细回想还是有很多改得不如人意的地方…