สมมติว่าเรามีรายการหมายเลขที่เรียกว่า 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