写一个小程序,参数是含有10个整数的数组,计算10个正整数的平均值,找出这10个数中与平均值距离(差值得绝对值)最近的三个数,以距离大小对这三个数进行排序和输出(与平均值距离最小的先输出)

淺唱寂寞╮ 提交于 2020-10-24 07:54:12

python实现代码:

class Solution:
    def find(self,nums):
        ret = []
        sum = 0
        for num in nums:
            sum += num;
        avr = sum/len(nums)
        distance=[]
        for num in nums:
            distance.append(abs(num-avr))
        i = 0
        flag = []
        retflag = []
        while i < 3:
            data=distance[0]
            m = 0
            n = 0
            for num in distance:
                if num < data and num not in flag:
                    data = num
                    n = m
                m += 1
            flag.append(data)
            retflag.append(n)
            i+=1
        for num in retflag:
            ret.append(nums[num])
        return ret

if __name__ == '__main__':
    test=Solution()
    a=[33,44,61,2,36,42,56,81,11,17]
    b=test.find(a)
    print b

 运行结果:

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!