#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
int* twoSum(int* nums, int numsSize, int target, int* returnSize) {
int* ret;
if (!ret) {
return NULL;
}
for (int i = 0; i < numsSize; ++i) {
for (int j = i+1; j < numsSize; ++j) {
if (nums[j] + nums[i] == target) {
ret[0] = i;
ret[1] = j;
*returnSize = 2;
return ret;
}
}
}
*returnSize = 0;
return 0;
}
int main(void) {
int nums[4] = {1, 2, 9, 4};
int numsSize = sizeof(nums) / sizeof(nums[0]);
int target = 6;
int* returnSize = 0;
int* res = 0;
res = twoSum(nums, numsSize, target, &returnSize);
printf("res:%d, res[0]:%d, res[1]:%d\r\n", *res
, res
[0], res
[1]); if (res == NULL) {
return -1;
}
else if (*res == ENODATA) {
return -1;
}
printf("The results:\r\ntarget:%d, index %d: %d and index %d: %d\r\n",\
target,\
res[0], nums[res[0]],\
res[1], nums[res[1]]);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPGVycm5vLmg+CgppbnQqIHR3b1N1bShpbnQqIG51bXMsIGludCBudW1zU2l6ZSwgaW50IHRhcmdldCwgaW50KiByZXR1cm5TaXplKSB7CglpbnQqIHJldDsKCXJldCA9IG1hbGxvYygyKnNpemVvZihpbnQpKTsKCWlmICghcmV0KSB7CgkJcmV0dXJuIE5VTEw7Cgl9CgkKCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtc1NpemU7ICsraSkgewoJCWZvciAoaW50IGogPSBpKzE7IGogPCBudW1zU2l6ZTsgKytqKSB7CgkJCWlmIChudW1zW2pdICsgbnVtc1tpXSA9PSB0YXJnZXQpIHsKCQkJCXJldFswXSA9IGk7CgkJCQlyZXRbMV0gPSBqOwoJCQkJKnJldHVyblNpemUgPSAyOwoJCQkJcmV0dXJuIHJldDsKCQkJfQoJCX0KCX0KCQoJKnJldHVyblNpemUgPSAwOwoJcHJpbnRmKCJoZXJlIik7CglyZXR1cm4gMDsKfQoKaW50IG1haW4odm9pZCkgewoJaW50IG51bXNbNF0gPSB7MSwgMiwgOSwgNH07CglpbnQgbnVtc1NpemUgPSBzaXplb2YobnVtcykgLyBzaXplb2YobnVtc1swXSk7CglpbnQgdGFyZ2V0ID0gNjsKCWludCogcmV0dXJuU2l6ZSA9IDA7CglpbnQqIHJlcyA9IDA7CgkKCXJlcyA9IHR3b1N1bShudW1zLCBudW1zU2l6ZSwgdGFyZ2V0LCAmcmV0dXJuU2l6ZSk7CglwcmludGYoInJlczolZCwgcmVzWzBdOiVkLCByZXNbMV06JWRcclxuIiwgKnJlcywgcmVzWzBdLCByZXNbMV0pOwoJaWYgKHJlcyA9PSBOVUxMKSB7CgkJcHJpbnRmKCJNZW1vcnkgZXJyb3JcclxuIik7CgkJcmV0dXJuIC0xOwoJfQoJZWxzZSBpZiAoKnJlcyA9PSBFTk9EQVRBKSB7CgkJcHJpbnRmKCJObyBzb2x1dGlvblxyXG4iKTsKCQlyZXR1cm4gLTE7Cgl9CgkKCXByaW50ZigiVGhlIHJlc3VsdHM6XHJcbnRhcmdldDolZCwgaW5kZXggJWQ6ICVkIGFuZCBpbmRleCAlZDogJWRcclxuIixcCgl0YXJnZXQsXAoJcmVzWzBdLCBudW1zW3Jlc1swXV0sXAoJcmVzWzFdLCBudW1zW3Jlc1sxXV0pOwoJCglyZXR1cm4gMDsKfQ==