美文网首页【python公司校招题】
【python摩拜】分石头?

【python摩拜】分石头?

作者: 阿牛02 | 来源:发表于2019-08-10 15:28 被阅读0次

    题目:已知石头重量数组。将石头分为质量最接近的两组。

    输入描述:

    数组,值为每个石头的质量

    输出描述:

    两组的质量(降序排序)

    示例1

    输入

    5,1,1,1,1,1

    输出

    5,5

    分析:先采用快速排序的算法,设定两组值,然后遍历数组,进行数值的分配。

    code:

    arr = [5, 1, 1, 1, 1, 1]

    def quick_sort(arr, left, right):

        if left > right:

            return arr

        key = arr[left]

        low = left

        high = right

        while left < right:

            if left < right and arr[right] >= key:

                right -= 1

            arr[left] = arr[right]

            if left < right and arr[left] <= key:

                left += 1

            arr[right] = arr[left]

        arr[right] = key

        quick_sort(arr, low, left - 1)

        quick_sort(arr, left + 1, high)

        return arr

    arr = quick_sort(arr, 0, len(arr) - 1)

    a=0  # 第一组的初始值

    b=0  # 第二组的初始值

    if len(arr) == 1:

        a = arr[0]

    for x in range(len(arr) - 1):

        x = arr[x]

        if(a==0):

            a = arr[-1]

            b = arr[0]

        else:

            if (abs(a + x - b) < abs(b + x - a)):

                a += x

            else:

                b += x

    print('{},{}'.format(a,b))

    相关文章

      网友评论

        本文标题:【python摩拜】分石头?

        本文链接:https://www.haomeiwen.com/subject/emerjctx.html