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

โปรแกรมแทนที่แต่ละองค์ประกอบด้วยค่าน้อยที่สุดทางด้านซ้ายใน Python

สมมติว่ามีรายการตัวเลขชื่อ nums เราต้องแทนที่ทุก nums[i] ด้วยค่าน้อยที่สุดทางด้านซ้ายของ i nums[0] แทนที่ด้วย 0

เช่น ถ้าอินพุตคือ [15, 7, 9, 16, 12, 25] ผลลัพธ์จะเป็น [0, 15, 7, 7, 7, 7]

ขั้นตอนการแก้ปัญหา

  • ถ้า nums ว่าง คืนค่ารายการใหม่
  • j := nums[0], nums[0] := 0
  • for i ในช่วง 1 ถึง len(nums)-1
    • k := nums[i], nums[i] := j, j := min(j, k)
  • คืนค่า nums

ตัวอย่างโค้ด

class Solution:
    def solve(self, nums):
        if not nums:
            return []
        j = nums[0]
        nums[0] = 0
        for i in range(1, len(nums)):
            k = nums[i]
            nums[i] = j
            j = min(j, k)
        return nums

ob = Solution()
nums = [15, 7, 9, 16, 12, 25]
print(ob.solve(nums))

อินพุต

[15, 7, 9, 16, 12, 25]

เอาต์พุต

[0, 15, 7, 7, 7, 7]