写一个小程序,参数是含有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

 运行结果:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM