首页 > 代码库 > 腾讯笔试题,木棍组成多边形判断

腾讯笔试题,木棍组成多边形判断

技术分享

 1 package com.qyz.test; 2  3 import java.util.ArrayList; 4 import java.util.Collections; 5 import java.util.List; 6 import java.util.Scanner; 7  8 public class Solution { 9 10     public static void main(String[] args) {11         12         Scanner s = new Scanner(System.in);13         14         int n = s.nextInt();15         16         List<Integer> ls = new ArrayList<Integer>();17         18         while(n-- > 0){19             //表示操作类型20             int o = s.nextInt();21             //木棍长度22             int l = s.nextInt();23             //根据操作对集合增删24             if(o == 1)25                 ls.add(l);26             else if(o == 2)27                 //注意,remove有两种实现,一种是删除指定位置,一种是删除第一次出现的元素28                 ls.remove(new Integer(l));29             else{30                 System.out.println("ERR!!!");31                 break;32             }33             int len = ls.size();34             //集合长度小于3不能构成多边形35             if(len < 3){36                 System.out.println("No");37                 continue;38             }39             //对集合进行排序,升序40             Collections.sort(ls);41             int sum = 0;42             //计算除最后一个元素(最大元素)的和43             for(int i = 0;i < len - 1;i++)44                 sum += ls.get(i);45             46             if(sum <= ls.get(len-1))47                 System.out.println("No");48             else49                 System.out.println("Yes");50         }51         s.close();52         53     }54 55 }

 

该题组要在于对多边形的长度判断,其实很简单,只要有三条线段及以上,且最大边长度小于其余各边的长度和,就可以构成多边形了,添加进list,然后排个序,就可以判断了。

 

腾讯笔试题,木棍组成多边形判断