LeetCode1、二つの数および(C言語)

件名の説明:

整数配列NUMSと目標値の目標を考えると、配列内の2つの整数の目標値を特定し、その配列の添字に戻るにお願いします。

あなたは、各入力が一つだけ答えに対応することを想定することができます。ただし、同じ配列要素を再使用することはできません。

例:

所与NUMS = [2、7、11、15]、目標= 9

なぜならNUMS [0] + NUMS [1 ] = 2 + 7 = 9
返される[0,1]

出典:滞在ボタン(LeetCode)
リンク://leetcode-cn.com/problems/two-sum:httpsの
トピック書き込み機能のパラメータによって与えられたleetcodeに与えられたハンドラので、

#include<stdio.h>
int* twoSum(int* nums, int numsSize, int target, int* returnSize);
int main()
{
	int arr[4] = {2,7,11,15};
	int len = sizeof(arr) / 4;
	int target;
	printf("请输入目标值:\n");
	scanf("%d",&target);
	int *returnsize;
	int *r =  twoSum(arr, len, target, returnsize);
	printf("[%d,", r[0]);
	printf("%d]", r[1]);
} 
int* twoSum(int* nums, int numsSize, int target, int *returnSize)
{
	//遍历数组找target 
	static int a[2] = {0};
	for(int i = 0; i < numsSize -1; i++)
	{
		for(int j = i + 1; j < numsSize; j++)
		{
			if(nums[i] + nums[j] == target)
			{
					a[0] = i;
					a[1] = j; 
					*returnSize = 2; //代表返回数组的大小 
					return a;
			}	
		}	
	}
	*returnSize = 0;
	return a;
} 

私はこのアプローチが最も発生しやすいはずです、簡単な時間の複雑さは、空間的複雑性O(1)の一定のレベル、暴力的なO(N ^ 2)であり、後に良い書き込みが再び追加期待しています。

私はちょうどより多くの交流の不備、自分自身の学習過程を記録するためにこれを取る、白です。

リリース9件のオリジナルの記事 ウォンの賞賛3 ビュー2497

おすすめ

転載: blog.csdn.net/mglcms/article/details/104605683