c语言数组经典编程题
时间: 2023-10-28 12:05:37 浏览: 124
好的,我知道了。下面是回答:
C语言数组经典编程题有很多,以下是其中一道比较经典的题目:
题目描述:给定一个整数数组 nums 和一个目标值 target,请在数组中找出和为目标值的两个整数,并返回它们的数组下标。
示例:假设 nums = [2, 7, 11, 15], target = 9,因为 nums + nums = 2 + 7 = 9,所以返回 [0, 1]。
解题思路:使用哈希表来存储每个元素的值和它的索引。对于每个元素 nums[i],查找 target - nums[i] 是否在哈希表中,如果在,则返回它们的索引。
代码实现:
int* twoSum(int* nums, int numsSize, int target, int* returnSize){
int* result = (int*)malloc(sizeof(int) * 2);
*returnSize = 2;
int hashTable[20001] = {0};
for(int i = 0; i < numsSize; i++){
int complement = target - nums[i];
if(hashTable[complement + 10000] != 0){
result = hashTable[complement + 10000] - 1;
result = i;
return result;
}
hashTable[nums[i] + 10000] = i + 1;
}
return result;
}
阅读全文