0
点赞
收藏
分享

微信扫一扫

【C++杂货铺】运算符重载

文章目录


😦第一题:拿下LeetCode1769. 移动所有球到每个盒子所需的最小操作数

  • 😤 学完本章节知识即可掌握本题!

学习内容:LeetCode1769. 移动所有球到每个盒子所需的最小操作数

😤题目


示例1

示例2


🙈思路分析:

时间复杂度 O(N^2)
空间复杂度 O(N)

在这里插入图片描述


💖代码产出:

int* minOperations(char * boxes, int* returnSize){
    int len = strlen(boxes);
    *returnSize = len;
    int sum = 0;
    int* answer = (int*)malloc(sizeof(int) * (*returnSize));
    for(int i = 0;boxes[i] != '\0';i++)
    {
        sum = 0;
        for(int j = 0;boxes[j] != '\0';j++)
        {
            if((boxes[j] - '0') == 1)
            {
                sum += abs(j - i);
            }
        }
        answer[i] = sum;
    }
    return answer;
}

😦第二题:拿下2089. 找出数组排序后的目标下标

  • 😤 学完本章节知识即可掌握本题!

学习内容: 拿下2089. 找出数组排序后的目标下标

😤题目


示例1

示例2

示例3

示例4


🙈思路分析:

时间复杂度 O(N)
空间复杂度 O(N)

在这里插入图片描述


💖代码产出:

int compare(const void* a,const void* b)
{
    return *(int*)a - *(int*)b;
}
int* targetIndices(int* nums, int numsSize, int target, int* returnSize){
    int ans = 0;
    qsort(nums,numsSize,sizeof(int),compare);
    for(int i = 0;i < numsSize;i ++)
    {
        if(nums[i] == target)
            ans ++;
    }
    *returnSize = ans;
    int* ret = (int*)malloc(sizeof(int) * *returnSize);
    int j = 0;
    for(int i = 0;i < numsSize;i ++)
    {
        if(nums[i] == target)
        {
            ret[j++] = i;
        }
    }
    return ret;
}
}
举报

相关推荐

0 条评论