算法基础学习
水家那桶水
Do not, for one failure, give up the purpose that you resolved to effort.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
字典序全排列(非递归方法)
递归实现很简单了,在这就不再赘述,本文主要大体描述一下使用非递归方法进行全排列,该算法被用在了C++的STL库中 [例]字符集{1,2,3},较小的数字较先,这样按字典序生成的全排列是: 123,132,213,231,312,321生成给定全排列的下一个排列.所谓一个的下一个就是这一个与下一个之间没有其他的。这就要求这一个与下一个有尽可能长的共同前缀,也即变化限制在尽可能短的后缀上原创 2016-07-04 11:53:31 · 738 阅读 · 0 评论 -
八皇后问题-递归与非递归方法实现
int board[8][8];int cnt = 0;bool isValid(int i, int j){ int k; for(k = 0; k < 8; ++k) if(k != j && board[i][k]) return false; for(k = 0; k < 8; ++k) if(k != i && board[k][原创 2016-10-08 13:10:29 · 619 阅读 · 0 评论 -
《编程之法》-第二章
1、寻找最小的 k 个数原创 2016-10-04 12:49:47 · 922 阅读 · 0 评论 -
最小子串查找
题目:给一个字符串s1,和一个小串s2,求算法能在s1中找到包含s2里所有字符的最小子串。比如:s1 = “ADOBECODEBANC”s2 = “ABC” 最小子串是 “BANC”,要求O(N)的算法。原创 2016-10-02 23:23:02 · 1801 阅读 · 0 评论 -
链表以k单位翻转
题目:给出一个链表和一个数k, 比如链表1→2→3→4→5→6; 若k=2, 则翻转后2→1→4→3→6→5; 若k=3, 则翻转后3→2→1→6→5→4; 若k=4, 则翻转后4→3→2→1→5→6; 方法1分析: 将链表以k单位划分,分别倒序再链接;原创 2016-09-29 12:50:32 · 533 阅读 · 0 评论 -
求木板最大拼接矩形
给定n块木板A[1…n],高度记为A[i],每块目标高度不等,宽度相等,用这些木板排列成一面木板墙,木板排列好后,求解木板墙中最大的矩形面积,请设计算法求得木板墙最大的矩形面积,并分析算法效率。 举例说明,如下图所示的木板排列,最大矩形面积为深灰色区域,即4*3=12。原创 2016-09-27 20:25:01 · 1430 阅读 · 0 评论 -
不用库函数sqrt()求一个正整数N的开方
1.牛顿迭代int _tmain(int argc, _TCHAR* argv[]) { int N; cout<<"输入N的值:"; cin>>N ; double x1 = 1;//初值 double x2 = x1/2.0+N/2.0/x1; while( fabs(x2-x1)>0.001原创 2016-09-27 22:47:02 · 2213 阅读 · 1 评论 -
hulu14年笔试题目总结
hulu笔试题目总结原创 2016-09-27 10:53:40 · 645 阅读 · 0 评论 -
动态规划方法求最大子连续数组乘积
假设数组为a[],直接利用动归来求解,考虑到可能存在负数的原创 2016-09-27 16:38:42 · 639 阅读 · 0 评论 -
堆排序法(c/c++实现)
堆排序法(heap sort)基于选择排序思想,利用堆结构和二叉树的一些性质来完成数据的排序。堆结构是一个完全二叉树,在这个树中每个节点对应一个记录,每个节点满足以下条件:如果按照从小到大(从大到小)的顺序排序,非叶子节点数据要大于(小于)或等于其左右子节点的数据。原创 2016-07-06 22:32:58 · 469 阅读 · 0 评论 -
《编程之法》习题集答案整理-第二章
1、不用除法运算 3、找出数组中唯一的重复元素 1-1000放在含有1001个元素的数组中,只有唯一的一个元素值重复,其它均只出现一次。 每个数组元素 只能访问一次,设计一个算法,将它找出来;不用辅助存储空间,能否设计一个算法实现? 解析:异或法、总和减值法、4、找出唯一出现的数 一个数组里,数都是两两出现的,但是有三个数是唯一出现的,找出这三个数。 解析:原创 2016-10-08 13:09:23 · 1022 阅读 · 0 评论 -
整数中1出现的次数(从1到n整数中1出现的次数)--数学规律法
一、1的数目编程之美上给出的规律: 1. 如果第i位(自右至左,从1开始标号)上的数字为0,则第i位可能出现1的次数由更高位决定(若没有高位,视高位为0),等于更高位数字X当前位数的权重10i-1。 2. 如果第i位上的数字为1,则第i位上可能出现1的次数不仅受更高位影响,还受低位影响(若没有低位,视低位为0),等于更高位数字X当前位数的权重10i-1+(低位数字+1)。 3. 如果第i位上的原创 2016-09-14 10:43:09 · 1017 阅读 · 0 评论 -
《编程之法》习题集答案整理-第一章
最近读了某博主整理的一些笔试面试算法题,该书的部分习题是没有直接答案的,为了自己学习方便,同时方便后面学习的同学,立此文整理,感谢原博主http://blog.youkuaiyun.com/v_july_v/article/details/6543438原创 2016-09-29 15:55:17 · 2867 阅读 · 1 评论
分享