twoSum()

twoSum()
// Note: The returned array must be malloced, assume caller calls free().

#include <stdio.h>
#include <stdlib.h>  //包含此行以使用 malloc()

int* twoSum(int* nums, int numsSize, int target, int* returnSize) {
    int i = 0;
    int j = 0;
    int* result=(int*)malloc(sizeof(int)*2);
    for(i;i<numsSize;i++){
        for(j=i+1;j<numsSize;j++){
            if(nums[i]+nums[j]==target){
                result[0]=i;
                result[1]=j;
                *returnSize=2;
                return result;
            }
        }
    }
    return result;
}

int main(){
    int nums[]={10,2,3,4,5,6,7,8,9,10};
    int numsSize=sizeof(nums)/sizeof(nums[0]);
    int i;
    int target = 11;
    int returnSize;
    int* result=twoSum(nums,numsSize,target,&returnSize);
    if(result!=NULL&&returnSize==2){
        printf("[%d, %d]\n",result[0],result[1]);
        free(result);
    }
    else{
        printf("no find\n");
        free(result);
    }
    return 0;
} 

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部