
算法
文章平均质量分 69
花好月圆19
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
n次幂求法
《数据结构与算法分析》mark.Allen.weiss中提供的分治算法可以用于解决任意情形的指数运算(或者称为幂运算),是一个典型算法。C/C++ code?123456789101112131415bool isE转载 2015-06-03 21:41:44 · 583 阅读 · 0 评论 -
或与加问题
题目:给定 x, k ,求满足 x + y = x | y 的第 k 小的正整数 y 。 | 是二进制的或(or)运算,例如 3 | 5 = 7。比如当 x=5,k=1时返回 2,因为5+1=6 不等于 5|1=5,而 5+2=7 等于 5 | 2 = 7。代码:#include #include using namespace std; i原创 2016-12-13 22:10:00 · 404 阅读 · 1 评论 -
青蛙跳台阶问题
(1)一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法。(2)一只青蛙一次可以跳上1级台阶,也可以跳上2 级……它也可以跳上n 级,此时该青蛙跳上一个n级的台阶总共有多少种跳法?分析:1)当n = 1, 只有1中跳法;当n = 2时,有两种跳法;当n = 3 时,有3种跳法;当n = 4时,有5种跳法;当n = 5时,转载 2016-02-29 11:47:26 · 272 阅读 · 0 评论 -
【百度面试题】把数组排成最小的数
问题描述:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。例如输入数组{32, 321},则输出这两个能排成的最小数字32132。请给出解决问题的算法,并证明该算法。 思路:先将整数数组转为字符串数组,然后字符串数组进行排序,最后依次输出字符串数组即可。这里注意的是字符串的比较函数需要重新定义,不是比较a和b,而是比较ab与 ba。如果ab b转载 2016-03-08 16:01:13 · 221 阅读 · 0 评论 -
从1到n整数中1出现的次数
思路:找规律,可以直接根据数n中每一个数字来判断包含1的个数复杂度为O(len),len表示数n包含的数字个数。方法:假设数字为abcde,对于abcde中的每一个数字,可以根据该数字与1的关系,求在该数字对应位置上1出现的次数。具体来说:假设我们要求百位出现1的次数,此时我们可以根据c与1的关系,求出百位1出现的次数。(1)如果c = 0,则1出现原创 2016-03-08 09:57:58 · 232 阅读 · 0 评论 -
栈的弹入序列问题
题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。http://www.nowcoder.com/questionTerminal/d77d11405cc7470d82原创 2016-03-03 08:56:51 · 354 阅读 · 0 评论 -
跳台阶问题
【题 目】一个台阶一共有n阶,一次起跳可以跳一阶,也可以跳二阶。问总共有多少中跳法,并对时间复杂度进行分析。【思 路】如果只有一阶,那么只有一种跳法;如果有2阶,那么有2中跳法(跳1阶再跳1阶,一次跳2阶);那么如果有n阶呢?假设对于n阶的阶梯,我们有f(n)种跳法;那么n阶时,我们考虑如果第一次跳共有两种选择:第一次跳了1阶,剩下n-1阶有f(n-1)种跳法;第一次跳了2阶,剩下的n-2原创 2015-11-12 08:17:29 · 387 阅读 · 0 评论 -
集合的子集
在考研复试时,遇到此题。当时不会做, 最近遇到这题。想到一个好方法,现记录如下。算法: 设有集合s={e1,e2,...,en}。易知其有2**n个子集。可将每一位元素用0,1标记。若为0,则表示此位没在子集中未出现。若为1 ,则出现。则用n位2进制数即可表示的所有可能情况。 (1)依次生成一个n位2进制数(0~2**n) (2)原创 2015-03-23 11:10:17 · 330 阅读 · 0 评论 -
日期问题
问题:给定两个日期,求他们之间的days解题思路:用最朴素的思路:一天天的数。伪码如下所示:days = 0while date1 is before date2date1 = date1's nextdaydays++return days整体思路就是如上所示,解决该题便基于此一步步下去。由此题,要体会将现实问题用程序解决的一般步骤。代码:def原创 2015-08-21 10:57:36 · 262 阅读 · 0 评论 -
网易笔试题
题目:给予36个车,6个车道,如和在最短的时间内确定前三名?解题思路:首先比较6次,确定前六名。然后,前三名必然在第一组的前三个,第二组的前二个,第三组的前一个中。(去掉不可能位于前三的)需要两次。总共,需要8次。原创 2015-08-29 20:33:33 · 350 阅读 · 0 评论 -
字符串split
# The built-in .split() procedure works# okay, but fails to find all the words on a page# because it only uses whitespace to split the# string. To do better, we should also use punctuation# ma原创 2015-08-30 09:35:55 · 273 阅读 · 0 评论 -
最长公共子序列问题(LCS)
1、递归版本 对于序列A[0,n]和B[0,m],LCS(A,B)无非三种情况 (0)若n=-1或m=-1,则取做空序列(“”) //递归基 (1)若A[n]='X'=B[m],则取做:LCS(A[0,n),B[0,m))+‘X’原创 2015-06-05 15:52:34 · 276 阅读 · 0 评论 -
木棒拼图
题目:有一个由很多木棒构成的集合,每个木棒有对应的长度,请问能否用集合中的这些木棒以某个顺序首尾相连构成一个面积大于 0 的简单多边形且所有木棒都要用上,简单多边形即不会自交的多边形。初始集合是空的,有两种操作,要么给集合添加一个长度为 L 的木棒,要么删去集合中已经有的某个木棒。每次操作结束后你都需要告知是否能用集合中的这些木棒构成一个简单多边形。输入描述:每组测原创 2016-12-13 22:33:13 · 1592 阅读 · 0 评论