昨天搜狗的一道题。。。。。(反正我挂了)

#!/bin/python
# -*- coding: UTF-8 -*-
import sys

"""搜狗题目,圆周上两点距离,
   第一行:输入n(圆上的n个点)  第二行:输入n个点的度数s(0<=s<=360) 双精度,8位小数
   输出园中距离最远的两点之间的夹角度数m(0<=m<=180),双精度,保留8位小数
"""
n = input()
circle = []
for i in range(n):
    doublenum = sys.stdin.readline().strip()
    doublenum = float(doublenum)
    circle.append(doublenum)

"""二分查找寻找下届,恰好小于key"""
def Binery_Find(circle,n,key):
    low = 0
    high = n-1
    mid = (low + high) / 2
    while low < high:
        if circle[mid]< key :
            low = mid
        else:
            high = mid -1
        mid = (low + high+1) / 2
    return mid
maxx = 0
for i in range(n-1):
    key = circle[i]+180
    if key > 360:
        key -= 360
    mid1 = Binery_Find(circle,n,key)
    mid2 = mid1+1
    if mid1< n-1:
        maxx = max(circle[mid1]-circle[i],maxx,360-(circle[mid2]-circle[i]))
    else:
        maxx = max((circle[mid1] - circle[i]), maxx)
print "%.8f"%maxx
笔试的时候只会用暴力,这个是结束之后讨论后写的代码,还有什么不足的求赐教!!!


全部评论
同AC挂,so还是好好看看简历吧
点赞 回复 分享
发布于 2017-09-11 14:37
ac了也挂了
点赞 回复 分享
发布于 2017-09-11 14:14
三分法求函数极值
点赞 回复 分享
发布于 2017-09-11 12:12
双指针
点赞 回复 分享
发布于 2017-09-10 04:44

相关推荐

积极的小学生不要香菜:你才沟通多少,没500不要说难
点赞 评论 收藏
分享
06-12 17:46
门头沟学院 Java
运营你豪哥:来说重点: ​1.项目前置,时间倒序。​​ 2.​项目描述强化结果与量化效果(STAR原则里的R)。​​ ​3.个人技能精炼,明确掌握程度,突出核心。​​ ​4.增加强有力开头的个人总结部分。​​ 5.​优化教育背景(成绩排名)、合并奖项与活动。​​
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务