Tour

Action speaks louder than words ...

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  算法题

遇到过的一些算法相关的题目,这里做以记录
摘要:给定一个有序数组a(从小到大排列),数组中的数据有正有负,找出这个数组中的绝对值最小的元素。最先到的自然是从头到尾依次遍历数组中的每个元素,找出绝对值最小的元素。这是最简单的方法,不过它并没有用到数组有序这个特性,现在我们来看看有没有更好的方法。题目要求在数组中查找元素,并且此数组有序,那么可以... 阅读全文
posted @ 2014-11-08 12:14 Tourun 阅读(2109) 评论(1) 推荐(0)

摘要:将一个正整数表示为连续自然数的和,比如给定整数15,那么根据题意,需要输出的连续自然数为1+2+3+4+5=4+5+6=7+8=15。题目中的连续自然数序列可以看做一个升序的有序数组,取数组前两个数为起始的区间的左右两个端点。对区间中的值进行累加,如果累加值小于给定的整数时,那么右端点向右移动,... 阅读全文
posted @ 2014-11-07 23:25 Tourun 阅读(2938) 评论(3) 推荐(0)

摘要:在数组中,数字减去它右边的数字得到一个数对之差,求所有数对之差的最大值。例如在数组{2, 4, 1, 16, 7, 5, 11, 9}中,数对之差的最大值是11,是16减去5的结果。分析上面的例子,要使得数对之差的值越大,那么减数的值越小而被减速的值越大(在减法算式中,减号前面的数是被减数,减号... 阅读全文
posted @ 2014-10-31 00:12 Tourun 阅读(1817) 评论(1) 推荐(0)

摘要:回文字符串,指一个字符串,从左到右和从右到左是完全一样的。判断一个字符串是否是回文,最简单的方式字符串头尾字符一一比较: 1 bool IsPalindromes(const char *pstr, int n) 2 { 3 int i=0, j=n-1; 4 while(i=j... 阅读全文
posted @ 2014-10-30 10:47 Tourun 阅读(540) 评论(0) 推荐(0)

摘要:最大连续子序列之和问题描述为:数组中里有正数也有负数,连续的一个或多个整数组成一个子数组,每个子数组都有一个和,求所有子数组的和的最大值。分析,对数组a进行一遍扫描,sum[i] 为前i个元素中,包含第i个元素且和最大的连续子数组,MaxSum保存当前子数组中最大和,对于a[i+1]来说,sum... 阅读全文
posted @ 2014-10-30 01:01 Tourun 阅读(3941) 评论(1) 推荐(0)

摘要:计数排序(Counting sort)是一种稳定的线性时间排序算法。计数排序使用一个额外的数组C,其中第i个元素是待排序数组A中值等于i的元素的个数。然后根据数组C来将A中的元素排到正确的位置。计数排序不是比较排序,排序的速度快于任何比较排序算法。由于用来计数的数组C的长度取决于待排序数组中数据... 阅读全文
posted @ 2014-10-28 17:43 Tourun 阅读(1299) 评论(0) 推荐(0)

摘要:求素数的程序是笔试或面试中会经常被问到的题目,大四找工作面试时,就被一个面试官问到了,虽然写出的代码能够完成题目要求,但是面试官并不满意,原因当然在程序的效率上,面试官反复问及如何对原有程序进行优化,想了半天除了将偶数剔除,再无其他想法,这也导致最后投递的岗位从研发变成offer中的测试。 素... 阅读全文
posted @ 2014-10-28 11:21 Tourun 阅读(1747) 评论(2) 推荐(0)

摘要:这个题目是在网上看到了,题目描述如下:有两个数组a,b,大小都为n,数组元素的值任意,无序。要求:通过交换a,b中的元素,使数组a元素的和与数组b元素的和之间的差最小。不知道是否真的出自华为,但题目难度很大,以我的水平8分钟确实无法写出完整的代码,查阅网上的牛人的思路,理解整理如下:对两个数字值... 阅读全文
posted @ 2014-10-27 23:33 Tourun 阅读(3548) 评论(4) 推荐(0)