[LeetCode][Python][C#]刷题记录 26. 删除排序数组中的重复项
生活随笔
收集整理的這篇文章主要介紹了
[LeetCode][Python][C#]刷题记录 26. 删除排序数组中的重复项
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
這道題我真的糾結(jié)好久,因為沒注意那個原地的題目要求,所以很奇怪怎么我電腦運行成功,但是LeetCode上運行就是不對。氣哭。
感謝群友lino的幫助。他試了set方法不行,直接喂給我的答案了。。。
題目:26. 刪除排序數(shù)組中的重復(fù)項
給定一個排序數(shù)組,你需要在原地刪除重復(fù)出現(xiàn)的元素,使得每個元素只出現(xiàn)一次,返回移除后數(shù)組的新長度。
不要使用額外的數(shù)組空間,你必須在原地修改輸入數(shù)組并在使用 O(1) 額外空間的條件下完成。
代碼:python
這個代碼思路很簡單,因為題目是排序數(shù)組,直接從后面跟前面對比,有相同的直接remove就行了
class Solution:def removeDuplicates(self, nums):""":type nums: List[int]:rtype: int"""for i in range(len(nums)-1,0,-1):if nums[i] == nums[i-1]:nums.remove(nums[i-1])print(nums)?
還有就是直接return會報錯,錯誤:
Line 50: TypeError: 'list' object cannot be interpreted as an integer,剛開始不知道,試了好久。。return改成print就ok
代碼:c#
思路圖:(我真滴很喜歡畫畫,不要噴偶)
?
public int RemoveDuplicates(int[] nums) {int i = 0;if (nums.Length == 0) return 0;for (int j = 1; j < nums.Length; j++){if (nums[j] != nums[i]){i++;nums[i] = nums[j];}}i++;return i;}返回值是刪除重復(fù)項后的長度哦
?
其實按理來說有個更簡單的方法,不過LeetCode不能用,但是日常工作可以用哦很方便
nums = nums.Distinct().ToArray();?
這個可以直接得到不重復(fù)項~
?
轉(zhuǎn)載于:https://www.cnblogs.com/babydoll/p/9583012.html
總結(jié)
以上是生活随笔為你收集整理的[LeetCode][Python][C#]刷题记录 26. 删除排序数组中的重复项的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微星主板 新版bios 开启虚拟化
- 下一篇: .Net C# 微信APP支付的开