สมมติว่าเรามีรายการตัวเลข nums เราต้องรวมสมาชิกติดกันที่มีค่าเท่ากันเป็นซับลิสต์ แม้จะมีเพียง 1 ครั้งก็ต้องอยู่ในซับลิสต์ของตัวเอง
ตัวอย่าง: nums = [5, 5, 2, 7, 7, 7, 2, 2, 2, 2] ผลลัพธ์คือ [[5, 5], [2], [7, 7, 7], [2, 2, 2, 2]]
ขั้นตอนการแก้ปัญหา
- ถ้า
numsว่าง คืนค่าลิสต์ว่าง result = [[nums[0]]],j = 0- วนลูป
iจาก 1 ถึงlen(nums)-1:- ถ้า
nums[i] != nums[i-1]:result.append([])j += 1
result[j].append(nums[i])
- ถ้า
- คืนค่า
result
ตัวอย่างโค้ด Python
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))
# Output: [[5, 5], [2], [7, 7, 7], [2, 2, 2, 2]]
อินพุต / เอาต์พุต
Input: [5, 5, 2, 7, 7, 7, 2, 2, 2, 2]
Output: [[5, 5], [2], [7, 7, 7], [2, 2, 2, 2]]