[LeetCode][Python][C#]刷题记录 26. 删除排序数组中的重复项
這道題我真的糾結(jié)好久,因?yàn)闆]注意那個(gè)原地的題目要求,所以很奇怪怎么我電腦運(yùn)行成功,但是LeetCode上運(yùn)行就是不對(duì)。氣哭。
感謝群友lino的幫助。他試了set方法不行,直接喂給我的答案了。。。
題目:26. 刪除排序數(shù)組中的重復(fù)項(xiàng)
給定一個(gè)排序數(shù)組,你需要在原地刪除重復(fù)出現(xiàn)的元素,使得每個(gè)元素只出現(xiàn)一次,返回移除后數(shù)組的新長(zhǎng)度。
不要使用額外的數(shù)組空間,你必須在原地修改輸入數(shù)組并在使用 O(1) 額外空間的條件下完成。
代碼:python
這個(gè)代碼思路很簡(jiǎn)單,因?yàn)轭}目是排序數(shù)組,直接從后面跟前面對(duì)比,有相同的直接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會(huì)報(bào)錯(cuò),錯(cuò)誤:
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ù)項(xiàng)后的長(zhǎng)度哦
?
其實(shí)按理來說有個(gè)更簡(jiǎn)單的方法,不過LeetCode不能用,但是日常工作可以用哦很方便
nums = nums.Distinct().ToArray();?
這個(gè)可以直接得到不重復(fù)項(xiàng)~
?
轉(zhuǎn)載于:https://www.cnblogs.com/babydoll/p/9583012.html
總結(jié)
以上是生活随笔為你收集整理的[LeetCode][Python][C#]刷题记录 26. 删除排序数组中的重复项的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微星主板 新版bios 开启虚拟化
- 下一篇: c# char unsigned_dll