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

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

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

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

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