八月集训第4天解题报告

宇宙大爆炸 2022-08-04 23:58:30

2016. 增量元素之间的最大差值

int maximumDifference(int* nums, int numsSize){
    int ans = -1;
    for(int i = 0; i < numsSize - 1; ++i){
        for(int j = i + 1; j < numsSize; ++j){
            int tmp = nums[j] - nums[i];
            if(tmp > 0 && tmp > ans){
                ans = nums[j] - nums[i];
            }
        }
    }
    return ans;
}

 

2239. 找到最接近 0 的数字

int findClosestNumber(int* nums, int numsSize){
    int ans = nums[0];
    for(int i = 1; i < numsSize; ++i){
        if(abs(nums[i]) < abs(ans)){
            ans = nums[i];
        }
        else if(abs(nums[i]) == abs(ans) && ans < nums[i]){
            ans = nums[i];
        }
    }
    return ans;
}

 

1475. 商品折扣后的最终价格

int* finalPrices(int* prices, int pricesSize, int* returnSize){
    for(int i = 0; i < pricesSize; ++i){
        for(int j = i + 1; j < pricesSize; ++j){
            if(prices[j] <= prices[i]){
                prices[i] -= prices[j];
                break;
            }
        }
    }
    *returnSize = pricesSize;
    return prices;
}

 

2248. 多个数组求交集

int* intersection(int** nums, int numsSize, int* numsColSize, int* returnSize){
    int hash[1001];
    memset(hash, 0, sizeof(hash));
    for(int i = 0; i < numsSize; ++i){
        for(int j = 0; j < numsColSize[i]; ++j){
            ++hash[nums[i][j]];
        }
    }
    int* ret = (int*)malloc(sizeof(int) * numsColSize[0]);
    int cnt = 0;
    for(int i = 1; i < 1001; ++i){
        if(hash[i] == numsSize){
            ret[cnt++] = i;
        }
    }
    *returnSize = cnt;
    return ret;
}

 

...全文
28 回复 打赏 收藏 举报
写回复
回复
切换为时间正序
请发表友善的回复…
发表回复
发帖
万人千题

6.2w+

社区成员

学习「 算法 」的捷径就是 「 题海战略 」,社区由「 夜深人静写算法 」作者创建,三年ACM经验,校集训队队长,亚洲区域赛金牌,世界总决赛选手。社区提供系统的训练,答疑解惑,面试经验,大厂内推等机会
社区管理员
  • 英雄哪里出来
  • Amy卜bo皮
  • Risso
加入社区
帖子事件
编辑了帖子 (查看)
2022-08-05 00:15
创建了帖子
2022-08-04 23:58
社区公告

QQ群:480072171

英雄算法交流 8 群