在试图解决LeetCode的几个问题时,我面临着一个非常奇怪的问题。
问题26:从排序数组中删除重复项 https://leetcode.com/problems/remove-duplicates-from-sorted-array/description/
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.为了对这个问题进行编码,我使用了:
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。
我对这个问题的解决办法如下:
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”中,我们可以看到列表是相应修改的。链接到截图
请让我知道是否有其他人面临这一问题,或有人知道这一问题的解决办法。
发布于 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[:]则更改列表的值。
发布于 2017-07-25 17:35:45
您可以使用sudo service network-manager restart
https://stackoverflow.com/questions/42108060
复制相似问题