สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums ตอนนี้ให้พิจารณาการดำเนินการที่เราสามารถอัปเดตองค์ประกอบเป็นค่าใดก็ได้ เราสามารถดำเนินการดังกล่าวได้ไม่เกิน 3 รายการ เราต้องหาผลต่างขั้นต่ำระหว่างค่าสูงสุดและค่าต่ำสุดเป็น num
ดังนั้น หากอินพุตเป็น nums =[2, 3, 4, 5, 6, 7] ผลลัพธ์จะเป็น 2 เนื่องจากเราสามารถเปลี่ยนรายการเป็น [4, 3, 4, 5, 4, 4] แล้ว 5 - 3 =2.
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- ถ้าขนาดของ nums <=4 แล้ว
- คืน 0
- n :=ขนาดของ nums
- เรียงเลขรายการ
- คืนค่าขั้นต่ำของความแตกต่างระหว่าง nums[n-4 + i] - nums[i] สำหรับ i ทั้งหมดในช่วง 0 ถึง 3
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
class Solution: def solve(self, nums): if len(nums) <= 4: return 0 nums.sort() return min(nums[-4 + i] - nums[i] for i in range(4)) ob = Solution() nums = [2, 3, 4, 5, 6, 7] print(ob.solve(nums))
อินพุต
[2, 3, 4, 5, 6, 7]
ผลลัพธ์
2