LeetCode:圈地运动,求构成最小面积所需要的边数

* 圈地运动,就是用很多木棍摆在地上组成一个面积大于0的多边形~小明喜欢圈地运动,于是他需要去小红店里面买一些木棍,* 期望圈出一地来.小红想挑战一下小明,所以给小明设置了一些障碍.障碍分别是:* 1.如果小明要买第i块木棍的话,他就必须把前I块木棍都买下来.* 2.买了的木棍都必须用在圈地运行中.* 那么请问小明最少买多少根木棍,才能使得木棍围成的图形是个面积大于0多边形呢?** 输入描述:第一行一个数n,表示木棍个数.* 第二行n个数,第i个数表示第i个木棍的长度ai.* 1<=n<=10000* 1<=ai<=10000* 输出描述:输出一个数,表示最少需要的木棍个数,如果无解则输出为-1.** 解题思路:* 至少需要3根木棍才能构成封闭的图形.而且从三角形的思路出发,任意两边之和必须大于第三边.* 则多边形前n个之和不包含最大值大于其最大值.
package movementOfEnclosure;import java.util.Scanner;public class Solution {public int enclosureMovement(){Scanner in=new Scanner(System.in);int n=in.nextInt();int[] nums=new int[n];for(int i=0;inums[i]?max:nums[i];//如果i大于1(如果不大于1,说明只有两条边,无论如何也构不成),并且sum-max>max,即//前n个数中不含max值之和大于max,则存在if(i>1&&sum>2*max){ans=i+1;//存在,则跳出break;}}return ans;}public static void main(String[] args){Solution so=new Solution();System.out.println(so.enclosureMovement());}
}

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部