题目描述:

圈地运动,就是用很多木棍摆在地上组成一个面积大于0的多边形~小明喜欢圈地运动,于是他需要去小红店里面买一些木棍,期望圈出一块地来。小红想挑战一下小明,所以给小明设置了一些障碍。障碍分别是:1.如果小明要买第i块木棍的话,他就必须把前i-1块木棍都买下来。2.买了的木棍都必须用在圈地运动中。那么请问小明最少买多少根木棍,才能使得木棍围成的图形是个面积大于0多边形呢?

输入描述:第一行一个数n,表示木棍个数。 第二行n个数,第i个数表示第i个木棍的长度ai 1<=n<=10000 1<=ai<=10000

输出描述:输出一个数,表示最少需要的木棍个数,如果无解输出-1

样例输入

3
6 8 10

样例输出

3

提示:用三根6,8,10的木棍可以组成一个直角三角形的图形。

题目来自于:https://www.acmcoder.com/#/practice/code

满足以下条件即可组成多边形

1、边数最少为3;

2、满足最长边的长度小于其余边长总和

var printOut = function(arr){if(arr.length < 3){console.log('-1');}else{for(i=3;i<=arr.length;i++){//从第三位开始判断能否组成多边形let temparr = [...arr]let sumarr = temparr.splice(0,i)//排序找最大值sumarr.sort((x,y)=>x-y)let sum = 0;let maxnum = sumarr[i-1]//求各边之和sumarr.forEach(item=>{sum += item})//判断最长边的长度是否小于其余边长总和if(sum-maxnum >maxnum){console.log(i);return;}//如果到最后一位都么有满足条件,则返回-1,跳出循环if(i===arr.length){console.log('-1');return;}}}
}
printOut([6,8,10])

结果:(可以直接复制以上代码,浏览器右键检查显示开发者模式,点击console栏,粘贴代码回车即可看到效果)

//printOut([6,8,10])
3
//printOut([1,2,3,3,9])
4
//printOut([9,6,4,5,9])
3
//printOut([1,2,3,5])
4
//printOut([1,2,2,5,9])
3
//printOut([1,2,1,5,9])
-1

圈地运动-组成面积大于0多边形相关推荐

  1. 木棒拼图(有一个由很多木棒构成的集合,每个木棒有对应的长度,请问能否用集合中的这些木棒以某个顺序首尾相连构成一个面积大于 0 的简单多边形且所有木棒都要用上,简单多边形即不会自交的多边形。)

    输入描述: 每组测试用例仅包含一组数据,每组数据第一行为一个正整数 n 表示操作的数量(1 ≤ n ≤ 50000) , 接下来有n行,每行第一个整数为操作类型 i (i ∈ {1,2}),第二个整数 ...

  2. 360笔试编程题-圈地运动

    题目描述 圈地运动,就是用很多木棍摆在地上组成一个面积大于0的多边形.小明喜欢圈地运动,于是他需要去小红店里买一些木棍,期望全出一块地来.小红想挑战一下小明,所以给小明设置了一些障碍.障碍分别是: 1 ...

  3. OpenGL研究3.0 多边形区域填充

    OpenGL研究3.0 多边形区域填充 DionysosLai(906391500@qq.com)2014-06-22 所谓多边形区域填充.就是将多边形内部区域,所有已相同色块填充.注意:这里讨论的多 ...

  4. 面积法判断多边形顺逆时针

    面积法判断多边形顺逆时针 // 输入:按照顺序输入多边形的轮廓顶点 // 输出:0代表数据有问题,-1代表逆时针,1代表顺时针 int estimateContourType(std::vector& ...

  5. PTA 7-4 输入半径(大于0),计算圆面积-math库

    本题目要求输入半径(大于0),使用math库中的pi常量来计算圆面积. 注意:如果输入半径的数据不符合条件,则重复输入直到满足条件才进入后续的计算. 输入格式: 输入一个数. 输出格式: 半径为res ...

  6. python尝试不同的随机数进行数据划分、使用卡方检验依次计算不同随机数划分下训练接和测试集所有分类特征的卡方检验的p值,如果所有p值都大于0.05则训练集和测试集都具有统计显著性、数据划分合理

    python尝试不同的随机数进行数据划分.使用卡方检验依次计算不同随机数划分下训练接和测试集所有分类特征(categorical)的卡方检验的p值,如果所有p值都大于0.05则退出循环.则训练集和测试 ...

  7. mysql查询大于0的标记_MySQL如何查询回答数大于0的问题并分页

    question表的字段: question_id, title, content answer表的字段 answer_id, question_id, content 百度了很久,参考着写了两条SQ ...

  8. matlab给0数组赋值,MATLAB中怎么把一个函数的一部分赋值给一个变量或数组,比如怎么把sin(x)大于0的部分赋值给f....

    答:你可以编一个for循环么,判断sin(x)时候大于0,如果大于0 f=sin(x) 答:总体思路:设定筛选条件,将数组中符合条件的元素筛选出来(可以筛选出元素值也可以筛选出元素对应的下标),然后将 ...

  9. 求两个数字的乘积,如果大于0,说明两个数字同号,如果小于0,说明两个数字异号,如果等于0,说明其中一个是0

    学了java基础东西,就写了这个编程,求两个数字的乘积,如果大于0,说明两个数字同号,如果小于0,说明两个数字异号,如果等于0,说明其中一个是0 首先程序要求我们输入两个数字,我就用了Scanner来 ...

最新文章

  1. 书评 | 9 年码龄工程师读 Android 经典
  2. 全面掌握ISO8583报文协议
  3. union--求集合的并集
  4. 深入Python(1): 字典排序 关于sort()、reversed()、sorted()、cmp()等
  5. oracle 提取首字母,oracle 取字段文字拼音首字母
  6. Hadoop之HDFS读写数据流程
  7. maximo 自定义高级数据选择对话框(非表域实现)
  8. uni-app开发:tabar组件与顶部导航栏(功能开发篇)
  9. js中的Promise简单总结(ES6)
  10. 第三篇:白话tornado源码之请求来了
  11. 程序设计中为什么要解耦?
  12. 计算机找不到ie浏览器,IE浏览器不见了怎么办?找回IE浏览器的方法
  13. [2019CCPC秦皇岛] G Game on Chessboard 状压dp
  14. echarts版中国地图
  15. 如何将代码写的更加优雅?
  16. DVWA 不跳转_终于开通!小红书图文、直播可跳转淘宝链接!
  17. S3DIS数据集的几个bug
  18. U盘重装系统-非常简单制作方法
  19. 【JQuery】使用JQuery实现城市两级或三级联动(下拉菜单)
  20. VSCode安装及配置

热门文章

  1. 世嘉MD游戏开发【六】:矩形填充Tile图块
  2. 新零售发展至今电子价签起到的作用
  3. Unity学习——射箭游戏
  4. 微信网页第三方登录原理 微信开放平台和公众平台的区别 1.公众平台面向的时普通的用户,比如自媒体和媒体,企业官方微信公众账号运营人员使用,当然你所在的团队或者公司有实力去开发一些内容,也可以调用公众
  5. BNUOJ 34971 BALLS
  6. 前端vue论坛项目(七)------构建 UserProfileView 用户页面
  7. Virtualbox安装增强功能时显示【未能加载虚拟光盘】
  8. 为要混一口饭吃(乱改徐志摩为要寻一个明星)
  9. 读书笔记--《BIM手册》--案例笔记
  10. 亚马逊卖家如何提升店铺排名,提高订单量