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

ลบรายการที่ซ้ำกันออกจาก Sorted Array ใน Python


สมมติว่าเรามีรายการที่เรียงลำดับ A เราต้องคืนค่าความยาวของอาร์เรย์หลังจากลบรายการที่ซ้ำกันทั้งหมด เราต้องทำสิ่งนี้ในพื้นที่พิเศษ O (1) เราจึงต้องดำเนินการแทน

ตัวอย่างเช่น สมมติว่า A =[1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 5, 5, 5, 6] จากนั้นผลลัพธ์จะเป็น 6 เนื่องจากมีองค์ประกอบที่แตกต่างกันหกตัว

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

  • หากรายการว่างเปล่า ให้คืนค่า 0
  • มิฉะนั้น เริ่มแรกใช้ prev =องค์ประกอบแรกของ A และกำหนดความยาว =0
  • สำหรับ i :=1 ถึง n-1 ทำ
    • ถ้า A[i] ไม่เหมือนกับก่อนหน้า แล้ว
      • ยาว :=ยาว + 1
      • ก่อนหน้า :=A[i]
  • ความยาวคืน

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

ตัวอย่าง (Python)

คลาส Solution(object):def removeDuplicates(self, nums):""" :type nums:List[int] :rtype:int """ if len(nums) ==0:return 0 length =1 Previous =nums[0] index =1 for i in range(1,len(nums)):if nums[i] !=Previous:length +=1 Previous =nums[i] nums[index] =nums[i] index+ =1 ส่งคืน lengthinput_list =[1,1,2,2,2,3,3,3,3,4,5,5,5,6]ob1 =Solution()print(ob1.removeDuplicates(input_list)) 

อินพุต

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

ผลลัพธ์

6