回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在学习算法,有一个问题:</p>
<blockquote>
<p>Given an array of integers, pack consecutive elements into sublists.</p>
<p>For example, given the list [4, 4, 1, 6, 6, 6, 1, 1, 1, 1], return [[4, 4], [1], [6, 6, 6], [1, 1, 1, 1]].</p>
<p>Note: If there's only one occurrence in the list it should still be in its own sublist.</p>
</blockquote>
<p>我创建了以下解决方案:</p>
<pre><code>def solve(nums):
packed = []
lastElement = nums[0]
currPack = []
for i, num in enumerate(nums):
newPack = []
if lastElement == num:
currPack.append(num)
else:
newPack.append(num)
packed.append(currPack)
currPack = newPack
lastElement = num
packed.append(currPack)
return packed
nums = [4,4,1,6,6,6,1,1,1,1]
solve(nums)
# [[4,4], [1], [6,6,6], [1,1,1,1]]
</code></pre>
<p>它正在工作,但正如你所看到的,它不是很干净。我该如何改进这一点</p>