作者xxx30165 (xxx30165)
看板Python
标题[问题] Leetcode 88. Merge Sorted Array
时间Fri Jul 15 10:14:59 2016
这一题给定nums1, nums2两个list,以及m,n代表这两个list的长度,
然後题目规定要把两个用merge的方式存到nums1。
想说先直接sort测试看看,以下是我的程式码:
class Solution(object):
def merge(self, nums1, m, nums2, n):
"""
:type nums1: List[int]
:type m: int
:type nums2: List[int]
:type n: int
:rtype: void Do not return anything, modify nums1 in-place instead.
"""
nums = nums1 + nums2
nums.sort()
nums1 = nums
但这个程式码在下面的测资出现问题:
Input: [0], 0, [1], 1
Output: [0]
Expected: [1]
感觉,我的output应该是[0,1]才对,
但我不懂的是为什麽明明nums1有一个[0]的元素,长度却是0?
後来又在跑自定的测资
Input: [0],1,[1],1
Your Answer: [0]
Expected answer: Line 16: IndexError: list assignement index out of range
我的程式只有写到13行,是不是他题目有点奇怪啊?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.214.132
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1468548902.A.FB0.html
1F:→ uranusjr: nums1 = nums 并不会 modify nums1 in-place 07/15 10:26
2F:→ xxx30165: 那请问为什麽不是in-place会造成结果错误呢? 07/17 09:23
3F:→ s860134: list 物件提供几个 in-place 方法 append,extend,sort 07/17 16:19
4F:→ xxx30165: 嗯嗯,但是我还是不太懂不用in-place出错的原因是什麽? 07/17 21:20
5F:→ uranusjr: Reassign local scope 里的变数不会影响 scope 外的值 07/17 21:26
6F:→ uranusjr: 你自己执行一次, 在 merge 执行前、中、後把 nums1 和 07/17 21:27
7F:→ uranusjr: id(nums1) 印出来 (後者会印出 nums1 是「哪一个」物件) 07/17 21:28
8F:→ uranusjr: 看看就知道了 07/17 21:28
9F:→ xxx30165: 终於懂了,感谢您! 07/17 21:41