|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
如图所示,为什么一直返回的是空数组啊
网址:https://leetcode.cn/problems/two-sum/submissions/
- /**
- * Note: The returned array must be malloced, assume caller calls free().
- */
- int* twoSum(int* nums, int numsSize, int target, int* returnSize){
- int a,b,c[2];
- for (a = 0;a<numsSize;a++){
- for(b=0;b<numsSize;b++){
- if (target == nums[a] + nums[b]){
- c[0] = a;
- c[1] = b;
- return c;
-
- }
- }
- }
- return 0;
- }
复制代码
使用动态分配内存:
- int* twoSum(int* nums, int numsSize, int target, int* returnSize) {
- int a, b;
- int* c = (int*)malloc(2 * sizeof(int));
-
- for (a = 0; a < numsSize; a++) {
- for (b = 0; b < numsSize; b++) {
- if (target == nums[a] + nums[b]) {
- c[0] = a;
- c[1] = b;
- *returnSize = 2;
- return c;
- }
- }
- }
-
- *returnSize = 0;
- return NULL;
- }
复制代码
使用静态数组:
- int* twoSum(int* nums, int numsSize, int target, int* returnSize) {
- int a, b;
- static int c[2];
-
- for (a = 0; a < numsSize; a++) {
- for (b = 0; b < numsSize; b++) {
- if (target == nums[a] + nums[b]) {
- c[0] = a;
- c[1] = b;
- *returnSize = 2;
- return c;
- }
- }
- }
-
- *returnSize = 0;
- return NULL;
- }
复制代码
这两种版本的修改都会返回一个包含两个索引的整数数组,表示满足条件的两个数在原始数组中的位置。当没有找到符合条件的数对时,返回空指针,并将`returnSize`设置为0。
|
|