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

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


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

ดังนั้น หากอินพุตเป็น nums =[3, -6, 4, 3] ผลลัพธ์จะเป็น 4 เพราะหากเราแทรก 4 ลงในรายการ เราก็มี [4, 3, -6, 4, 3] . ตอนนี้ผลรวมนำหน้าคือ [4, 7, 1, 5, 8] ทั้งหมดมีค่ามากกว่า 0

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

  • ใส่ 0 ลงใน nums ที่ตำแหน่ง 0

  • สำหรับฉันในช่วง 1 ถึงขนาดของ nums - 1 ทำ

    • nums[i] :=nums[i] + nums[i - 1]

  • ส่งคืน 1 - ขั้นต่ำของ nums

ตัวอย่าง

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

def solve(nums):
   nums.insert(0, 0)
   for i in range(1, len(nums)):
      nums[i] += nums[i - 1]
   return 1 - min(nums)

nums = [3, -6, 4, 3]
print(solve(nums))

อินพุต

[3, -6, 4, 3]

ผลลัพธ์

4