
数组
文章平均质量分 78
bertzhang
这个作者很懒,什么都没留下…
展开
-
求子数组之和最大值(包括循环)
编程珠玑中给出了n*logn的解法,很有参考价值。O(n)的扫描方法,用到了前面分析的若干策略: 1) 从某个位置开始,到i位置结束的sum的计算方法是max_ending_here + array[i] 2)以往的最大值是max_sofar,要和到当前结束点的最大值进行比较取其大者 3)如果max_ending_here + array[i]的值小于array[i]的值,说明max_end原创 2012-02-08 15:07:59 · 1995 阅读 · 1 评论 -
快速寻找满足条件的两个数(两数之和为给定值)
首先递增排序,首尾指针相加,大于目标数,尾指针前移,小于目标数,首指针后移,继续比较,直到两指针相遇。 程序如下,借用这个问题,练习一下MergeSort #include #include void FindTargetSum(int array[], int begin, int end, int target_value) { int min = begin; int m原创 2012-02-08 10:32:55 · 1158 阅读 · 0 评论 -
求子数组和最接近0
题目:给定一个子数组,求子数组和最接近0 分析: 方法1: 这个问题和求子数组最大值优点相似,但解法不同,如果按照求子数组最大值的方法来求解,我们可以求出以j为截止的最大值和最小值,如果最大值和最小值都>0,那么最小值即为所求,如果都0而最小值 方法2: 我们先计算所有sum[0-j] 0 sum[i-j]= sum[0-j] - sum[0-i]; 因为已经对sum[0-j]进行了原创 2012-03-02 12:30:14 · 2212 阅读 · 0 评论