上周咸鱼了,这周再次重新做人!
【DAY 12】解压缩编码列表
分析:奇数位的数字用来判断重复数量,偶数位的数字用来作为重复数字;然后还要连接各个子列表。
难点在于,1.如何将多个子数组串联在一起?(控制频次和遍历原数组可以用双层for循环完成。用python应该会简单多了,用V有点麻烦。)2.如何确定目标数组的长度?
解决:首先确定目标数组的长度,就是两步,原数组的偶数位,偶数位的值控制频次。
int* decompressRLElist(int* nums, int numsSize, int* returnSize){
*returnSize = 0;
int len = numsSize / 2;
for(int i = 0;i < len;i++){
*returnSize += nums[2*i];
}
int index = 0;
int *ret = (int *) calloc (*returnSize,sizeof(int));
for(int k = 0;k < numsSize;k+=2){
for(int j = 0;j < nums[k];j++){
ret[index++] = nums[k+1];
}
}
return ret;
}
【DAY 13】
第一题:将数字变成0的操作次数
分析:思路挺简单的,只要num不为0,如果是奇数就-1,如果是偶数就/2,然后定义一个计数器统计次数即可。
int numberOfSteps (int num){
int count = 0;
while(num