假设我们有一个数字nums列表,我们会将具有相同值的连续元素打包到子列表中。我们必须记住,列表中只有一个事件,它应该仍然在自己的子列表中。
因此,如果输入像nums = [5,5,2,7,7,7,2,2,2,2],那么输出将是[[5,5],[2],[7, 7,7],[2,2,2,2]]
为了解决这个问题,我们将遵循以下步骤-
如果nums为空,则
返回新列表
结果:=一个列表,另一个列表包含nums [0]
j:= 0
对于范围为1到nums的i
在结果末尾插入一个新列表
j:= j + 1
如果nums [i]与nums [i-1]不同,则
在结果末尾插入nums [i] [j]
返回结果
让我们看下面的实现以更好地理解-
class Solution: def solve(self, nums): if not nums: return [] result = [[nums[0]]] j = 0 for i in range(1, len(nums)): if nums[i] != nums[i - 1]: result.append([]) j += 1 result[j].append(nums[i]) return result ob = Solution()nums = [5, 5, 2, 7, 7, 7, 2, 2, 2, 2] print(ob.solve(nums))
[5, 5, 2, 7, 7, 7, 2, 2, 2, 2]
输出结果
[[5, 5], [2], [7, 7, 7], [2, 2, 2, 2]]