สมมติว่าเรามีจำนวนอาร์เรย์และค่า 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