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

ลบหนึ่งเพื่อทำให้ค่าเฉลี่ยเป็น k ใน Python

สมมติว่าเรามีรายการตัวเลขชื่อ nums และจำนวนเต็ม k เราต้องตรวจสอบว่าสามารถลบองค์ประกอบหนึ่งตัวจากรายการเพื่อทำให้ค่าเฉลี่ยเท่ากับ k ได้หรือไม่ มีข้อจำกัดดังนี้:

  • 2 ≤ n ≤ 1,000 โดย n คือจำนวนองค์ประกอบของรายการ nums
  • nums[i], k ≤ 1,000,000

ตัวอย่าง

หากอินพุตคือ [5,3,2,4,6,10], k = 4 ผลลัพธ์จะเป็น True เนื่องจากถ้าลบ 10 ค่าเฉลี่ยขององค์ประกอบจะเป็น (5+3+2+4+6)/5 = 4 เท่ากับ k

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

  1. s := ผลรวมของทุกองค์ประกอบใน nums
  2. t := k * (ขนาดของ nums - 1)
  3. สำหรับแต่ละ i ใน nums:
    • ถ้า s - i == t ให้คืนค่า True
  4. คืนค่า False

การใช้งาน

class Solution:
    def solve(self, nums, k):
        s = sum(nums)
        t = k * (len(nums) - 1)
        for i in nums:
            if s - i == t:
                return True
        return False

ob = Solution()
nums = [5, 3, 2, 4, 6, 10]
k = 4
print(ob.solve(nums, k))

อินพุต

[5,3,2,4,6,10], 4

เอาต์พุต

True