文章目录
😦第一题:拿下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;
}
}