python如何进行字母排序并删除重复的字母_[LeetCode][Python][C#]刷题记录 26. 删除排序数组中的重复项...

这道题我真的纠结好久,因为没注意那个原地的题目要求,所以很奇怪怎么我电脑运行成功,但是LeetCode上运行就是不对。气哭。

感谢群友lino的帮助。他试了set方法不行,直接喂给我的答案了。。。

题目:26. 删除排序数组中的重复项

给定一个排序数组,你需要在

不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

代码:python

这个代码思路很简单,因为题目是排序数组,直接从后面跟前面对比,有相同的直接remove就行了

classSolution:defremoveDuplicates(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++;returni;

}

返回值是删除重复项后的长度哦

其实按理来说有个更简单的方法,不过LeetCode不能用,但是日常工作可以用哦很方便

nums = nums.Distinct().ToArray();

这个可以直接得到不重复项~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值