序列划分-使其最大值最小化
2017-08-13 14:22
399 查看
问题:给指定的序列划分为3份。取每份的最大值,再从3份最大值取出最大的max。
怎样划分,能够使max最小?
输入:1,2,3,4,5
划分:1,2,3 | 4 |5
最大值为6
思路:两个指针p1,p2,p1索引∈[0,len-2),p2索引∈[p1+1,len-1),最后一份索引范围[p2+1,len-1]
实现:
怎样划分,能够使max最小?
输入:1,2,3,4,5
划分:1,2,3 | 4 |5
最大值为6
思路:两个指针p1,p2,p1索引∈[0,len-2),p2索引∈[p1+1,len-1),最后一份索引范围[p2+1,len-1]
实现:
Array.prototype.sum = function(i,j){ i = i == undefined ? 0 : i; j = j == undefined ? 0 : j; var s = 0; for(var k = i;k <=j ;k++){ s+=this[k]; } return s; } function f(arr){ var result = {val:undefined,p1:"",p2:""}; for(var p1 = 0;p1<arr.length-2;p1++){ var s1 = arr.sum(0,p1); for(var p2 = p1+1;p2<arr.length-1;p2++){ var s2 = arr.sum(p1+1,p2); var s3 = arr.sum(p2+1,arr.length-1); var min = Math.max(Math.max(s1,s2),s3); if(p1==2){ console.log("min : "+min +",p1:"+p1+",p2:"+p2+",s2:"+s2+",s3:"+s3); } if(!result.val || result.val > min){result.val = min;result.p1 = p1;result.p2=p2;} } } return result; } console.log(f(new Array(1,2,3,4,5)));
相关文章推荐
- 数据结构——最大值最小化 (划分子序列)
- 序列划分-使其最大值最小化
- 连续序列分成m段,最大值最小化,二分经典
- 序列变换(二分,最小化最大值)
- 把一个包含n个正整数的序列划分成m个连续的子序列。设第i个序列的各数之和为S(i),求所有S(i)的最大值的最小值是多少?
- 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离
- 最大对称子序列
- 求最大子序列和(Java实现)
- 求最大子序列和 LeetCode 53 Maximum Subarray
- <数据结构与算法分析 C++描述>算法分析之最大子序列和问题
- 最大值最小化
- 2005年浙江大学计算机及软件工程研究生机试真题2:最大连续子序列
- 最大子数组和(最大子序列和 | 连续子数组最大和)
- 最大子序列和算法
- HDU 1231 最大连续子序列
- 关于最大连续子序列问题
- 算法导论---有序序列中的i个最大数(思考题9-1)
- hdu 1003 Max Sum (最大连续子序列)
- Common Subsequence最大长度子序列
- 最大子序列和问题