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

ตรวจสอบว่าอาร์เรย์ที่กำหนดสามารถลดให้เป็นศูนย์ได้หรือไม่ด้วยการดำเนินการที่กำหนดตามจำนวนครั้งในPython


สมมติว่าเรามีจำนวนอาร์เรย์และค่า k เราต้องตรวจสอบว่าองค์ประกอบใน num สามารถสร้างเป็น 0 ได้หรือไม่โดยดำเนินการดังต่อไปนี้ k จำนวนครั้งอย่างแน่นอนหรือไม่

  • การทำงาน:องค์ประกอบที่เล็กที่สุดจาก nums จะถูกลบออกจากค่าที่ไม่ใช่ศูนย์ของ nums ทั้งหมด

ดังนั้น หากอินพุตมีค่าเท่ากับ nums [2, 2, 3, 5] k =3 ผลลัพธ์จะเป็น True เพราะในตอนแรกลบ 2 ออกจากอาร์เรย์ ดังนั้นอาร์เรย์จะเป็น [0, 0, 1, 3] จากนั้นลบ 1 เพื่อรับ [0, 0, 0, 2] จากนั้นลบ 2 อีกครั้งเพื่อรับ [0, 0, 0, 0]

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

  • ถ้ามีองค์ประกอบที่แตกต่างกันจำนวน k แล้ว
  • คืนค่า True
  • คืนค่าเท็จ

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

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

def solve(nums, k):
   distinct = set(nums)
 
   if len(distinct) == k:
      return True
   return False
   
nums = [2, 2, 3, 4]
k = 3
print(solve(nums, k))

อินพุต

[2, 2, 3, 4], 3

ผลลัพธ์

True