代码挑战:迁移0元素|Python 3
Given an array nums
, write a function to move all 0
's to the end of it while maintaining the relative order of the non-zero elements.
Example:
Input: [0,1,0,3,12] Output: [1,3,12,0,0]
Note:
You must do this in-place without making a copy of the array.
Minimize the total number of operations.
方案:
class Solution:
def moveZeroes(self, nums: List[int]) -> None:
size = len(nums)
index = 0
for i in range(0, size):
if(nums[i] != 0) :
nums[index] = nums[i]
index = index + 1
while(index < size):
nums[index] = 0
index = index + 1
测试案例:
class Test_TestIncrementDecrement(unittest.TestCase):
def test1(self):
s = Solution()
a = [0, 1, 0, 3, 12]
e = [1, 3, 12, 0, 0]
s.moveZeroes(a)
size = len(a)
for i in range(0, size):
self.assertEqual(a[i], e[i] )
def test2(self):
s = Solution()
a = [1, 9, 8, 4, 0, 0, 2, 7, 0, 6, 0, 9]
e = [1, 9, 8, 4, 2, 7, 6, 9, 0, 0, 0, 0]
s.moveZeroes(a)
size = len(a)
for i in range(0, size):
self.assertEqual(a[i], e[i] )
- 点赞
- 收藏
- 关注作者
评论(0)