Leetcode 1313题:如何高效解压缩一个编码列表?
- 内容介绍
- 文章标签
- 相关推荐
本文共计519个文字,预计阅读时间需要3分钟。
给定一个以行为主的长整数数组 `nums`,编写一个程序来压缩这个数组。压缩后的数组应该以 `[freq, val]` 的形式存储,其中 `freq` 表示值为 `val` 的元素在原数组中出现的次数。
例如,如果 `nums` 是 `[1, 1, 2, 2, 3, 3, 3]`,那么压缩后的数组应该是 `[2, 1, 2, 2, 3, 3]`,表示数字 1 出现了 2 次,数字 2 出现了 2 次,数字 3 出现了 3 次。
pythondef compress(nums): if not nums: return []
compressed=[] count=1 for i in range(1, len(nums)): if nums[i]==nums[i - 1]: count +=1 else: compressed.append([count, nums[i - 1]]) count=1 compressed.append([count, nums[-1]])
return compressed
给你一个以行程长度编码压缩的整数列表 nums 。
考虑每对相邻的两个元素 [freq, val] = [nums[2i], nums[2i+1]] (其中 i >= 0 ),每一对都表示解压后子列表中有 freq 个值为 val 的元素,你需要从左到右连接所有子列表以生成解压后的列表。
请你返回解压后的列表。
本文共计519个文字,预计阅读时间需要3分钟。
给定一个以行为主的长整数数组 `nums`,编写一个程序来压缩这个数组。压缩后的数组应该以 `[freq, val]` 的形式存储,其中 `freq` 表示值为 `val` 的元素在原数组中出现的次数。
例如,如果 `nums` 是 `[1, 1, 2, 2, 3, 3, 3]`,那么压缩后的数组应该是 `[2, 1, 2, 2, 3, 3]`,表示数字 1 出现了 2 次,数字 2 出现了 2 次,数字 3 出现了 3 次。
pythondef compress(nums): if not nums: return []
compressed=[] count=1 for i in range(1, len(nums)): if nums[i]==nums[i - 1]: count +=1 else: compressed.append([count, nums[i - 1]]) count=1 compressed.append([count, nums[-1]])
return compressed
给你一个以行程长度编码压缩的整数列表 nums 。
考虑每对相邻的两个元素 [freq, val] = [nums[2i], nums[2i+1]] (其中 i >= 0 ),每一对都表示解压后子列表中有 freq 个值为 val 的元素,你需要从左到右连接所有子列表以生成解压后的列表。
请你返回解压后的列表。

