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