概述:
目前有n个点(1=n=1000 ),每个点都有一个称为点权AI(AI为偶数,1=ai=1000 )的值。 现在,可以连接任意两点。 连接后,这一带也有被称为边权的值,这一带的边权将是这两点的点权之和的一半。 现在,添加n-1条边,连接这n个点后,(连接是指任意两点可以相互到达) )的最大边权和需要问多少。
输入点数n; 和n的个数表示积分权的值
最大的边缘权和
例1
输入:
5
[2、4、6、8、10]
输出:
30
主题地址
44 .最大的边境权和
解决问题的方法有文档解释,文档下载地址如下
程序员面试宝典
但是官方只有解题思路,没有具体代码,所以这边我就附上我的解题代码,具体思路可以参照上面的解释,不一定完全一样,但是相似。
公共int解决方案(intn,int[] nums ) { int max=Integer.MIN_VALUE; int sum=0; for(intI=0; in; I ) ) max=math.max(max,nums[i]; sum =nums[i]; }返回(sum (n-2 ) *max )/2; }