华为机试题--求最大凸多边形

/** 
求最大凸多边形
给定一些点,输出最大面积的凸边形。输出起始点为x轴最左边的点,按照顺时针方向输出,每个点必须是凸边形的顶点(不输出边上或凸边形内的点)。
输入样例: 
13;-3,-3;1,3;2,-4;6,1;-2,-2;4,5;1,-2;1,4;-2,3;-4,1;-1,1;2,2;1,-1 
输出样例: 
-4,1;-2,3;4,5;6,1;2,-4;-3,-3
注: 
输入数据的第一个数为点的数目,然后是分号;再后面就是以分号间隔的点; 
点的数目最少为3个,最多为65535,点坐标范围[-1000, 1000];

假设输入的点可以组成一个凸多边形。

这道题是一道凸包问题,假设输入可以组成一个凸多边形,程序中没有加以验证。

我的思路是取左端最左下方的点作为边界点1(left),右端的在最右上方的点作为边界点2(right),分上半部分和下半部分来查找的。

(1)先是以left为起点,顺时针扫描到点left右上部分的第一个点p1,然后以p1为起点,顺时针扫描到点p1右上部分的第一个点p2,重复操作,直到找到点right;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值