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

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

 运行结果:

 

posted @ 2020-05-20 21:57  谁的小流浪  阅读(2091)  评论(1编辑  收藏  举报