สมมติว่ามีรายการตัวเลขชื่อ 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]