在lis中寻找与其他整数相匹配的最小移动数

2024-04-29 04:45:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我对编码非常陌生,作为一个训练营应用程序的一部分,我遇到了一个问题,我已经处理了一整天,但我被难住了。它也是定时的,我只剩下12个小时了。我必须取两个整数,然后将它们与第二对整数进行匹配,方法是将每个数字向上或向下移动,然后将所需的最小移动次数相加,这就是最终的答案。这是我第一次使用任何形式的编程语言超过CSS,所以请耐心等待。具体如下:

安德里亚和玛丽亚各自有一个整数数组。Andrea想改变她的数组以匹配Maria的数组。对于数组中的每个元素,sha可以在一次移动中对一个项目的数字进行递增或递减。安德烈需要多少步才能与玛丽亚斯阵法相匹配。在

完成函数minimumMoves

minimumMoves具有以下参数: [答:] 米[m[0],…米[n-1]]:

我太迷路了,我真的需要有人给我指出正确的方向。请帮忙!!!在

我在google上下了好几下,但我还是无法完全理解,如何从整数中挑出每一个数字,然后在不为每一个数字写一行新代码的情况下浏览每一个数字。在

#!/bin/python3

import math
import os
import random
import re
import sys



#
# Complete the 'minimumMoves' function below.
#
# The function is expected to return an INTEGER.
# The function accepts following parameters:
#  1. INTEGER_ARRAY a
#  2. INTEGER_ARRAY m
#

def minimumMoves(a, m):
    # Write your code here
    a = [4321, 3211]
    m = [5432, 4302]
    total=0
        if a[0] <= b[0]
           a[0] += 1
        else if a[0] >= b[0]
            a[0] += 1

Tags: theimport应用程序编码iffunction数字整数
2条回答

zip两倍字符串化整数,逐位比较,求绝对差。
我不清楚9->;1是两步(9->;0->;1)还是8步。我假设是后者:

def minimumMoves(a, m):
    a = [str(x) for x in a]
    m = [str(x) for x in m]
    return sum([
        abs(int(f) - int(s)) 
        for x, y in zip(a, m) 
        for f, s in zip(x, y)
    ])

a = [4321, 3211]
m = [5432, 4302]

minimumMoves(a, m)

>>> 8

如果您的意思是列表中的同一个索引位,可以尝试以下操作:

def minimumMoves(a, m):
    # Write your code here
    a = [4321, 3211]
    m = [5432, 4302]
    total = 0
    # iterate the array of a and m together
    for i, j in zip(a, m):
        # means how many steps to turn i into j
        total += abs(i - j)
    return total

如果你有进一步的问题和意见,希望你能有所帮助。:)

相关问题 更多 >