檢查Python陣列是否可以分成兩個子陣列,使得它們的絕對差為K


假設我們得到一個包含整數的陣列 "input_list"。問題是檢查該陣列是否可以分成兩半,這兩半的和的差等於數字n。數字n將預先給出。

因此,如果輸入類似於 input_list= [9,2,5,6],n = 0,則輸出將為“可能”。

為了解決這個問題,我們將遵循以下步驟:

  • list_total := input_list 值的總和
  • 如果 (list_total - n) mod 2 等於 1,則
    • 返回 "不可能"
  • val := (list_total - n) / 2
  • temp_sum := 0;
  • 對於 i 從 0 到 input_list 的大小,執行
    • temp_sum := temp_sum + input_list[i]
    • 如果 temp_sum 等於 val,則
      • 返回 "可能"
  • 返回 "不可能"

讓我們看看下面的實現來更好地理解:

示例

線上演示

def solve(input_list,n):
   list_total = sum(input_list)
   if (list_total - n) % 2 == 1:
      return "Not Possible"
   val = (list_total - n) / 2
   temp_sum = 0;
   for i in range (0,len(input_list)):
      temp_sum += input_list[i]
      if (temp_sum == val):
         return "Possible"
   return "Not Possible"
input_list= [9,2,5,6]
n = 0
print(solve(input_list, n))

輸入

[9,2,5,6], 0

輸出

Possible

更新於:2020-12-30

74 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.