• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






canexjtuzju

记录
 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

随笔分类 -  算法

1 2 3 4 下一页

 
约瑟夫环问题--递推解法
摘要:利用数学推导,如果能得出一个通式,就可以利用递归、循环等手段解决。下面给出推导的过程: (1)第一个被删除的数为 (m - 1) % n。 (2)假设第二轮的开始数字为k,那么这n - 1个数构成的约瑟夫环为k, k + 1, k + 2, k +3, .....,k - 3, k - 2。... 阅读全文
posted @ 2014-10-06 22:31 canexjtuzju 阅读(341) 评论(0) 推荐(0)
面试题--尽可能的减少求一个数组的最大最小值的比较次数
摘要:最普通的思路是2*N次的比较。那么如何优化呢:参考http://www.cnblogs.com/bestDavid/p/ExaminationALBABA.html3、设计一个最优算法来查找一n个元素数组中的最大值和最小值。已知一种需要比较2n次的方法,请给一个更优的算法。情特别注意优化时间复杂度的... 阅读全文
posted @ 2014-09-01 22:14 canexjtuzju 阅读(1880) 评论(0) 推荐(0)
面试题--十进制转换成2进制
摘要:输入是一个字符串表示的大数。输出二进制表示的字符串。思路:普通思路是不断地除以2,直到结果为0这里除法变成了大数的除法大数除法如下(只有一个大数的实现) 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7... 阅读全文
posted @ 2014-09-01 21:07 canexjtuzju 阅读(233) 评论(0) 推荐(0)
面试题--完全二叉树的的最后一层的最右节点
摘要:只说一下思路:由于除了最后一层,上面的构成满二叉树。对当前节点,判断最左和最右节点的层数,如果想等说明不在这个子树上,不等则在这个子树上递归求解:O(logn)? 阅读全文
posted @ 2014-08-31 23:45 canexjtuzju 阅读(448) 评论(0) 推荐(0)
九章算法--寻找数组波峰
摘要:题目描述:一 个数组A[1..n],假设数组中没有任何相邻两数相等,满足A[1]A[n]。A[i]被称为波峰,当且仅当 A[i]>A[i-1]并且A[i]>A[i+1]。请找到数组中的一个波峰。假设数组中存在相邻相等的数,该怎么做?二分法寻找一个波峰,如果数组存在相邻相等的元素则必须O(n) 1 /... 阅读全文
posted @ 2014-08-29 09:52 canexjtuzju 阅读(971) 评论(0) 推荐(0)
重新排列数组,使得负数后面跟着正数,O(1)的空间
摘要:两种情况:可以打乱原始顺序;不可以打乱原始顺序下面代码未测试,只是build了一下 1 /************************************************************************* 2 > File Name: RearrangeArr... 阅读全文
posted @ 2014-08-28 10:23 canexjtuzju 阅读(854) 评论(0) 推荐(0)
Careercup--Write a method to return first five 10 digit prime numbers
摘要:http://www.careercup.com/question?id=5763123118080000Primes after a point in the series are multiples of 6 +/-1. that is 31 = 30 + 1, 37 = 36 + 1 and ... 阅读全文
posted @ 2014-08-15 14:55 canexjtuzju 阅读(242) 评论(0) 推荐(0)
堆排序-c++
摘要:1 /************************************************************************* 2 > File Name: HeapSort.cpp 3 > Author: zhoukang 4 > Mail: z... 阅读全文
posted @ 2014-08-11 11:04 canexjtuzju 阅读(169) 评论(0) 推荐(0)
算法题--扔棋子
摘要:题目如下:“有一个100层高的大厦,你手中有两个相同的玻璃围棋子。从这个大厦的某一层扔下围棋子就会碎,用你手中的这两个玻璃围棋子,找出一个最优的策略,来得知那个临界层面。“先说下扩展:n层k个球这道题有一个dp解,因存在递归。假设第一次扔在第r层,碎了就在1~r之间寻找,此时还剩k-1个球;没碎就在... 阅读全文
posted @ 2014-08-08 11:22 canexjtuzju 阅读(404) 评论(0) 推荐(0)
海量数据处理--hash和bit-map
摘要:问题实例:海量日志数据,提取出某日访问百度次数最多的那个IP。答:对于ip,最多也就2^32个。所以可以很好地通过hash函数映射到内存中,再进行统计。IP最多为2^32个,为4G,一次放入内存中不行,可以采用分而治之的方法,先Hash(IP)/1024,将IP地址分别映射到1024个小文件中,每个... 阅读全文
posted @ 2014-08-07 21:29 canexjtuzju 阅读(447) 评论(0) 推荐(0)
海量数据处理--bloom filter
摘要:例题:给定两个大文件,各含有50亿条url,要求利用4G内存快速找出共同的url解答:假设两个文件为A和B,4G内存有32G位,可以表示5G的url。本文采用bloom filter解答:首先简单介绍一下bloom filter的思想,其核心是:位数组;K个hash函数。通过对大量数据处理,通过k个... 阅读全文
posted @ 2014-08-07 19:09 canexjtuzju 阅读(142) 评论(0) 推荐(0)
算法题--等概率产生0和1(有扩展)
摘要:1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 using namespace std;11 12 const int k =... 阅读全文
posted @ 2014-08-07 11:44 canexjtuzju 阅读(286) 评论(0) 推荐(0)
算法题--rand5产生rand7
摘要:由一个随机数产生另外一个随机数,最关键的问题是,如何实现等概率映射?下面是我的rand5产生rand7的实现:主要思路是将rand5映射到rand(5~30),然后抛去多余的几个,将剩下的21个数每三个映射到1~7之间得数。 1 #include 2 #include 3 #include 4... 阅读全文
posted @ 2014-08-07 09:54 canexjtuzju 阅读(242) 评论(0) 推荐(0)
九章算法--分配抄书员
摘要:思路:(1)最常见的思路就是dp:状态表示为dp[i][j],表示前j个人抄i本书最少时间;dp[i][j] = min(max(dp[k][j-1],sum(k+1,i))) (j 2 #include 3 #include 4 #include 5 #include 6 #include... 阅读全文
posted @ 2014-08-06 15:00 canexjtuzju 阅读(875) 评论(0) 推荐(0)
程序员面试100题--02
摘要:题目描述:实现一个min操作位O(1)的栈//之前其实写过一次,这次换一个何海涛的方法,设定辅助栈保存当前的最小值的索引。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #i... 阅读全文
posted @ 2014-08-02 20:44 canexjtuzju 阅读(218) 评论(0) 推荐(0)
程序员面试100题--01
摘要:1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 /*10 思路:11 递归的转化左子树以及右子树,然后将当前节点作为左子树链表的末尾节点,12 作... 阅读全文
posted @ 2014-08-02 18:59 canexjtuzju 阅读(185) 评论(0) 推荐(0)
面试题:1到N中,1出现的次数
摘要:1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 /* 9 统计1~N之间1出现的次数:分别对当前位的高位和低位找规律。10 其实这个问题可以扩展为统计1~N之间,m出现的... 阅读全文
posted @ 2014-07-25 10:52 canexjtuzju 阅读(215) 评论(0) 推荐(0)
面试题:数组划分成两个子数组,和的差值的绝对值最小
摘要:01背包问题,好久没写,我的代码不是很好看,而且没测试#include #include #include #include using namespace std;//给定一个数组,分成两组后,求两组的和的差的绝对值最小。//元素值大于0,没有负数;元素个数小于100/*思路:背包问题,求最接近s... 阅读全文
posted @ 2014-07-23 16:51 canexjtuzju 阅读(1589) 评论(0) 推荐(0)
面试题:全排列
摘要:求全排列:递归版本,去除重复 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 //全排列 8 vector > res; 9 void perm(vector &arr,int s,int e,v... 阅读全文
posted @ 2014-07-23 16:26 canexjtuzju 阅读(169) 评论(0) 推荐(0)
排序算法--快速排序
摘要:描述:快速排序可以理解为:分+递归,主要思想是分治。先找一个中间数,将数组划分成左右两个部分,左边的均小于或中间数,右边的均大于中间数;然后递归对左右部分进行递归;递归结束是区间只含一个数或者零个数。参考:挖坑+填坑http://blog.csdn.net/morewindows/article/d... 阅读全文
posted @ 2014-07-22 23:51 canexjtuzju 阅读(150) 评论(0) 推荐(0)
 

1 2 3 4 下一页