检查排序后的数组是否可以成对分成Python,其和为k

假设我们有一个数字数组,又有另一个数字k,我们必须检查给定的数组是否可以分为几对,使得每对的总和为k。

因此,如果输入像arr = [1、2、3、4、5、6],k = 7,则输出将为True,因为我们可以采用像(2,5),(1,6)这样的对和(3,4)。

为了解决这个问题,我们将遵循以下步骤-

  • n:= arr的大小

  • 如果n为奇数,则

    • 返回False

  • 低:= 0,高:= n-1

  • 从低到高,做

    • 返回False

    • 如果arr [low] + arr [high]与k不同,则

    • 低:=低+ 1

    • 高:=高-1

  • 返回True

让我们看下面的实现以更好地理解-

示例

def solve(arr, k):

   n = len(arr)   if n % 2 == 1:

      return False

   low = 0

   high = n - 1

   while low < high:

      if arr[low] + arr[high] != k:

         return False

      low = low + 1

      high = high - 1

   return True

arr = [1, 2, 3, 4, 5, 6]

k = 7

print(solve(arr, k))

输入值

[1, 2, 3, 4, 5, 6], 7
输出结果
True

以上是 检查排序后的数组是否可以成对分成Python,其和为k 的全部内容, 来源链接: utcz.com/z/315858.html

回到顶部