0
点赞
收藏
分享

微信扫一扫

三维跨孔电磁波CT数据可视化框架搭建

55f0f6eb5fef45b8b31fc561c321cc87.png

目录

选择题:

题一:

题二:

题三:

题四:

题五:

编程题:

题一:珠玑妙算

思路一:

题二:两数之和

思路一:

本人实力有限可能对一些地方解释和理解的不够清晰,可以自己尝试读代码,或者评论区指出错误,望海涵!

感谢大佬们的一键三连! 感谢大佬们的一键三连! 感谢大佬们的一键三连!


选择题:

题一:

题二:

题三:

题四:

题五:

编程题:

题一:珠玑妙算

面试题 16.15. 珠玑妙算 - 力扣(LeetCode)

baadd4325bb441628f5c81c40a2ab567.png

思路一:

        第一步:定义两个数组arr1,arr2记录两数组单词(颜色)的个数,开辟两个int类型大小的tmp输出的数组元素个数为2;

        第二步:遍历数组将相同的记录,不相同的在字母数组颜色中+1;

        第三步:遍历一遍字母表数组,满足同时有字母且有相同颜色时tmp+当前数组元素的最小值;

        第四步:返回tmp。

int* masterMind(char* solution, char* guess, int* returnSize)
{
//记录两数组单词(颜色)的个数
int arr1[26] = {0};
int arr2[26] = {0};
int* tmp = (int*)calloc(2,sizeof(int));
*returnSize = 2;
//将相同的记录,不相同的在数组颜色中+1
for(int i = 0; i < 4; i++ )
{
if(solution[i] != guess[i])
{
arr1[solution[i] - 65] ++;
arr2[guess[i] - 65] ++;
}
else
{
tmp[0]++;
}
}

for(int i = 0; i < 26; i++ )
{
//有相同颜色时,将数量给tmp[1]
if(arr1[i] > 0 && arr2[i] > 0)
{
tmp[1] += arr1[i] > arr2[i] ? arr2[i] : arr1[i];
}
}
return tmp;
}

题二:两数之和

两数之和_牛客题霸_牛客网 (nowcoder.com)

b133b3d7289b4739af498d56002dac60.png

思路一:

双重for循环暴力破解:

        第一步:开辟动态内存大小为两个int类型的tmp,输出的数组元素个数为2;

        第二步:双重for循环:计算当前数与后面的的数相加是否=target相同:tmp[0] = i + 1;
tmp[1] = j + 1(+1是因为题目没有0下标位)返回tmp;

        第三步:遍历结束都没有符合条件的两个下标,就将返回置NULL。

int* twoSum(int* numbers, int numbersLen, int target, int* returnSize ) 
{
int* tmp = (int*)malloc(sizeof(int) * 2);
*returnSize = 2;
//计算当前数与后面的的数相加是否=target
for(int i = 0; i < numbersLen; i++ )
{
//跳过不符合的数
if(numbers[i] > target)
continue;
for(int j = i+1; j < numbersLen; j++)
{
if(numbers[i] + numbers[j] == target)
{
tmp[0] = i + 1;
tmp[1] = j + 1;
return tmp;
}
}
}
//为空时
*returnSize = 0;
return NULL;
}

本人实力有限可能对一些地方解释和理解的不够清晰,可以自己尝试读代码,或者评论区指出错误,望海涵!

感谢大佬们的一键三连! 感谢大佬们的一键三连! 感谢大佬们的一键三连!

                                              c90de1178d0345148d109f22b2169307.jpeg

举报

相关推荐

0 条评论