Leetcode1313 Decompress Run-Length Encoded List(解压缩编码列表)

Posted 一只桃子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode1313 Decompress Run-Length Encoded List(解压缩编码列表)相关的知识,希望对你有一定的参考价值。

public int[] decompressRLElist(int[] nums) {
int[] result = new int[1000];
int k = 0;
for (int i = 0; i < (nums.length / 2); i++) {
for (int j = 0; j < nums[2 * i]; j++) {
result[k] = nums[2 * i + 1];
k++;
}
}
/*System.out.println("输入解码后的数组数据");
for(int i=0;i<k;i++)
System.out.print(result[i]+" ");*/
return result;
}
这是自己的代码
最终输出结果为

 

 由于java数组长度是无法改变的 所以我预设了一个固定空间数组 导致最后输出了多余的0元素 导致无法ac

问题出在没有想到数组长度怎么解决 (自己真的笨

查看了solutions发现数组的偶位置元素值相加之和,就是数组长度

故修改代码为:

public int[] decompressRLElist(int[] nums) {
int l=0;
for(int i=0;i<nums.length;i+=2)
l+=nums[i];
int [] result=new int[l];
int k = 0;
for (int i = 0; i < (nums.length / 2); i++) {
for (int j = 0; j < nums[2 * i]; j++) {
result[k] = nums[2 * i + 1];
k++;
}
}
System.out.println("输入解码后的数组数据");
for(int i=0;i<k;i++)
System.out.print(result[i]+" ");
return result;
}

 

同时还看到了另外一种解法

LinkedList<Integer> list = new LinkedList<>();
for (int i = 0; i < nums.length; i = i + 2) {
for (int j = 0; j < nums[i]; j++) {
list.add(nums[i + 1]);
}
}
int [] result=new int[list.size()];
for(int i=0;i<list.size();i++){
result [i]=list.get(i);
}
return result;

以上是关于Leetcode1313 Decompress Run-Length Encoded List(解压缩编码列表)的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode --- 1313. Decompress Run-Length Encoded List 解题报告

Leetcode1313 Decompress Run-Length Encoded List(解压缩编码列表)

leetcode1313

自定义 django 小部件 - decompress() arg 未填充

python compress_decompress.py

编译 grpc 错误 zlib_compress 和 zlib_decompress