求区间最小数乘区间和的最大值

[3,1,6,4,5,2]
对于任意子序列可以计算一个X值,X=sum(subArray) * min(subArray)
求最大X
X = (6+4+5) * 4 = 60

		function fn(arr){
    
    
			let max = 0
			let result = []
			while(arr.length){
    
    
				let num = Math.max(...arr)
				result.push(...arr.splice(arr.indexOf(num),1))
				let min = Math.min(...result)
				let sum = result.reduce((res,item)=>{
    
    return res+item},0)
				max = Math.max(max,sum*min)
			}
			return max
		}
		console.log(fn([3,1,6,4,5,2]))//60

不知道对不对。。没法测试所有用例

猜你喜欢

转载自blog.csdn.net/weixin_45284354/article/details/114109255