Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมค้นหาองค์ประกอบขั้นต่ำที่จะเพิ่มเพื่อสร้างผลรวมที่กำหนดใน Python


สมมติว่าเรามีอาร์เรย์ที่เรียกว่า nums และค่าจำกัดและเป้าหมายสองค่า อาร์เรย์มีความพิเศษเพราะ |nums[i]| <=จำกัด สำหรับ i ทั้งหมดตั้งแต่ 0 ถึงขนาดของอาร์เรย์ - 1 เราต้องหาจำนวนองค์ประกอบขั้นต่ำที่จะแทรกเพื่อให้ผลรวมของอาร์เรย์เหมือนกับเป้าหมาย องค์ประกอบอาร์เรย์ไม่ควรเกินค่าจำกัด

ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[2,-2,2], limit =3, goal =-4, ผลลัพธ์จะเป็น 2 เพราะเราสามารถบวกสอง (-3)s ได้ ดังนั้นอาร์เรย์จะเป็น [2,-2,2,-3,-3]

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • s :=ผลรวมขององค์ประกอบทั้งหมดที่มีอยู่ใน nums

  • ab :=|เป้าหมาย - s|

  • คืนเพดานของ (ab / จำกัด)

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

from math import ceil

def solve(nums, limit, goal):
   s = sum(nums)
   ab = abs(goal - s)
   return ceil(ab / limit)

nums = [2,-2,2]
limit = 3
goal = -4
print(solve(nums, limit, goal))

อินพุต

[2,-2,2], 3, -4

ผลลัพธ์

2.0