leetcode力扣数组第一题:两数之和————C语言版

题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/two-sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:已知目标值target,要在nums数组里找到他的两个和数a和cha(差),我们以a=nums[i]为基准,cha[i]=target-nums[i],之后在nums数组和cha[i]数组中比较找到相同的值,返回下标即可。具体代码如下:

#include
int main()
{
	int target,i,j;
	int nums[10]={0};
	int cha[10]={0};//保存差值
	printf("请输入target值:");
	scanf("%d",&target);
	printf("请输入给定数组:") ;
	for(i=0;i<10;i++)
	{
		scanf("%d",&nums[i]);
		cha[i]=target-nums[i];
	}
	for(i=0;i<10;i++)
	{
		for(j=i;j<10;j++)//遍历两个数组
		{
			if(nums[i]==cha[j])//找到差值
			{
				printf("[%d,%d]",i,j);
			}
		}
	}
	return 0;
}

执行结果如下:

leetcode力扣数组第一题:两数之和————C语言版_第1张图片

你可能感兴趣的:(力扣数组C语言)