标签:结果 tco 自己 技术 ret info 长度 sys mamicode
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(解压缩编码列表)
标签:结果 tco 自己 技术 ret info 长度 sys mamicode
原文地址:https://www.cnblogs.com/chengxian/p/12204018.html