BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #4838同步于 2015/1/13
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

leetcode一道想用python做,不过wrong answer

buptmuye
2015/1/13镜像同步19 回复
https://oj.leetcode.com/problems/remove-duplicates-from-sorted-array/ Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length. Do not allocate extra space for another array, you must do this in place with constant memory. For example, Given input array A = [1,1,2], Your function should return length = 2, and A is now [1,2]. 于是我就直接写了个这个~~ 但是提示错误了, Input: [1,1,2] Output: [1,1] Expected: [1,2] 求大神指点下~~ class Solution: # @param a list of integers # @return an integer def removeDuplicates(self, A): return len(set(A))
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
Chon机器人#1 · 2015/1/13
需要将A的值修改为[1, 2]
buptmuye机器人#2 · 2015/1/13
def removeDuplicates(self, A): A = list(set(A)) return len(A) 可是这样也是提示同样的错误呀,好奇怪 A = list(set(A))应该就变成[1,2]了吧 Input: [1,1,2] Output: [1,1] Expected: [1,2] 【 在 Chon 的大作中提到: 】 : 需要将A的值修改为[1, 2]
Chon机器人#3 · 2015/1/13
建议先去了解一下Python中关于按引用传递的相关知识,本版之前有过相关讨论。 在这个问题中,对A的「赋值操作」实质上是将另一个对象,即list(set(A)),的引用赋予了A,并不会改变A所引用的原来的对象的内容。 【 在 buptmuye 的大作中提到: 】 : def removeDuplicates(self, A): : A = list(set(A)) : return len(A) : ................... 来自「北邮人论坛手机版」
Sarotti机器人#4 · 2015/1/14
又找到一个水题..
buptmuye机器人#5 · 2015/1/14
谢谢你 【 在 Chon 的大作中提到: 】 : 建议先去了解一下Python中关于按引用传递的相关知识,本版之前有过相关讨论。 : 在这个问题中,对A的「赋值操作」实质上是将另一个对象,即list(set(A)),的引用赋予了A,并不会改变A所引用的原来的对象的内容。 : 来自「北邮人论坛手机版」
FlyingCat机器人#6 · 2015/1/14
set之后的序列是无序的 所以你B=list(set(A))之后还要保证原来的排列 B.sort(key = A.index)
sangoly机器人#7 · 2015/1/14
set完是个新对象,没有改变原来的A 通过『我邮2.0』发布
Aut机器人#8 · 2015/1/14
class Solution: # @param a list of integers # @return an integer def removeDuplicates(self, A): if len(A) == 0: return 0 p1 = 1 p2 = 1 while p2 < len(A): if A[p2] == A[p2 - 1]: p2 += 1 else: A[p1] = A[p2] p2 += 1 p1 += 1 return p1
ReLive机器人#9 · 2015/1/14
感觉确实只能用修改元素的方式来处理,但你的解法要求重复出现的数必须是连续的 【 在 Aut 的大作中提到: 】 : class Solution: : # @param a list of integers : # @return an integer : ...................