数据结构/算法
文章平均质量分 84
BusyCai
这个作者很懒,什么都没留下…
展开
-
【EMC笔试题】N个整数中找出三个数,使其和的绝对值最小
题目描述:给定包含N个数的无序数组S(可能包含负数,0,正数)。求三个数A,B,C,使其和的绝对值最小。例如:S={-9,0,1,3,6},A=-9,B=3,C=6,MIN=0算法解析:解法一:枚举3个数,O(N*N*N)解法二:对S排序后枚举其中2个数,二分查找另一个数。O(N*N*LOGN)解法三:对S排序后枚举其中1个数X,使用双向指针i,j从数组两端更新(注意剔除X)。根据S[I]+S[J]+X的正负号来更新I或J。若为负则I++,否则J--。一旦和为0即退出。同时根据每次得到的和来更新best。最原创 2011-01-20 22:59:00 · 4928 阅读 · 1 评论 -
【解题报告】 SRM412_div1_250pt 和 SRM411_div2_900pt
SRM412_div1_250: Forbidden String题目链接请点击这里。题目描述:只考虑由A,B,C三字母组成的字符串,若字符串S存在三个连续的字母使得其中一个为A,一个为B,一个为C,则称S为forbidden string。例如,BAACAACCBAAA 是Forbidden String,而AABBCCAABB 不是。给你字符串长度n,要求你计算有多少个not forbidden字符串。1解析1:可模拟字符串从长度为0开始不断往后append字母至长度为n的过程。当前位可添加的字母仅由其原创 2011-01-20 23:09:00 · 3100 阅读 · 0 评论 -
【阿里巴巴面试题】求1,2,2,3,4,5能够组合得到的不同数
今天同事问了我一道阿里面试题,题目如下:编程实现:有 1,2,2,3,4,5 六个数字,请输出它们所有不同的排序结果,如“322145”、“232154”等,其中 4 不能在第三位, 3 与 5 不能相连。好久没碰类似题目了,感觉脑子有点生锈。想出一个比较简单的搜索实现。主要有以下两点需要注意:1.对于两个2的处理。如果这六个数字两两不同,则每个组合都是唯一的。但出现相同两个数会导致结果减少一半。我在程序取了个巧,以1,2,3,4,5,6作为六个数字,将最终求得的结果除以2,即得到不同组合数。2.题目要求输原创 2011-03-19 16:26:00 · 4629 阅读 · 1 评论 -
两道动态规划(DP)题目解析
最近群里有些同学在准备找工作,讨论了笔试、面试以及一些算法题,有些探讨勾起了我的一些回忆,这里跟大家分享两道DP题。--------------------------------------------------------- 第一题: 给定一个整数序原创 2011-09-02 00:16:04 · 9354 阅读 · 7 评论