这是我做过的一个题,我把它分享给你们:
这是原文链接:https://leetcode-cn.com/problems/decompress-run-length-encoded-list/
如果感觉我做的还行的话,记得点赞。
思路分析:
这道题是让我们考虑每对相邻的两个元素,每一对都表示解压后有a个值为b的元素。
1.遍历nums数组中偶数角标,把每个角标加起来,这就能得到一个新数组的长度;
2.遍历nums数组中奇数角标,获取需要被多次写入的数据。
这道题就解决完成了,下面是我的网页的代码,主函数我就不写了,要验证的话自己编个主函数验证下:
class Solution {
public int[] decompressRLElist(int[] nums) {
int len = 0;
for(int i = 0;i < nums.length;i+=2){
len+=nums[i];
}
int[] newArr = new int[len];
int index = 0;
for(int i = 1;i <= nums.length;i+=2){
for(int j = 0;j < nums[i - 1];j++){
newArr[index++] = nums[i];
}
}
return newArr;
}
}