1. 程式人生 > >【leetcode日記】1.Two Sum (c語言)

【leetcode日記】1.Two Sum (c語言)

Description:

Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, and you may not use the same element twice.

Example:

Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1].

注意邊界:

  1. 輸入為0時的情況:nums = [0,3,4,0] target = 0
  2. 輸入為負數的情況:nums = [-1,-2,-3,-4,-5] target = -8
  3. 無解時的輸出(返回 NULL)
解法:窮舉
int* twoSum(int* nums, int numsSize, int target)
{
	int i, j;

	int* indices = (int*)malloc(2 * sizeof(int));

	for (i = 0; i < numsSize - 1; i++)
	{
		for (j = i + 1; j < numsSize; j++
) if (nums[i] + nums[j] == target) { indices[0] = i; indices[1] = j; return indices; } } return NULL;

執行結果: 這裡寫圖片描述