首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Leetcode Python问题

Leetcode Python问题
EN

Stack Overflow用户
提问于 2017-02-08 08:26:45
回答 2查看 843关注 0票数 0

在试图解决LeetCode的几个问题时,我面临着一个非常奇怪的问题。

问题26:从排序数组中删除重复项 https://leetcode.com/problems/remove-duplicates-from-sorted-array/description/

代码语言:javascript
复制
Example:

Given nums = [1,1,2],

Your function should return length = 2, with the first two elements of 
nums being 1 and 2 respectively.
It doesn't matter what you leave beyond the new length.

为了对这个问题进行编码,我使用了:

代码语言:javascript
复制
class Solution(object):
def removeDuplicates(self, nums):
    nums = list(set(nums))
    return len(nums)

这段代码所做的是首先将列表转换为一个集合,然后返回到list,这反过来将删除重复的列表。

但是,当我试图将此代码提交给leetcode解决方案时,将返回修改后的num长度,但是当程序试图访问num数组时,它不会被更新。

这种情况只发生在Leetcode编辑器中,在我的系统中,如果我试图打印num,就会显示修改后的值,不知道哪里出了问题。

现在,同样的情况也发生在其他问题上,例如:

旋转阵列https://leetcode.com/explore/interview/card/top-interview-questions-easy/92/array/646/ 将n个元素数组向右旋转k步。 例如,对于n=7和k= 3,数组1,2,3,4,5,6,7被旋转为5,6,7,1,2,3,4。

我对这个问题的解决办法如下:

代码语言:javascript
复制
class Solution(object):
 def rotate(self, nums, k):
    newIndex = k % len(nums)
    nums = nums[newIndex+1:len(nums)] + nums[0:newIndex+1]
    print nums

但是,我再次对我从投稿中得到的结果感到惊讶。

请注意,在“您的STDOUT”中,我们可以看到列表是相应修改的。链接到截图

请让我知道是否有其他人面临这一问题,或有人知道这一问题的解决办法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-07 02:27:37

原来解决这个问题的方法是使用:nums[:] = nums[newIndex+1:len(nums)] + nums[0:newIndex+1]

执行nums = nums[newIndex+1:len(nums)] + nums[0:newIndex+1]只更改引用,而nums[:]则更改列表的值。

票数 1
EN

Stack Overflow用户

发布于 2017-07-25 17:35:45

您可以使用sudo service network-manager restart

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42108060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档