🟩1.TwoSum

произвольное решение

Нам дан массив (nums) и число (target), нужно проверить есть ли в массиве два элемента которые при сложении будут давать в сумме это число. Вывести индексы этих элементов.

Пример 1:

Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].

Пример 2:

Input: nums = [3,2,4], target = 6
Output: [1,2]

Пример 3:

Input: nums = [3,3], target = 6
Output: [0,1]
Решение TwoSum
void TwoSum(int arr[], const int SIZE, int target)
{	
	bool solveFind = false;

	cout << "Начинаем перебор массива: " << endl;
	for (int i = 0; i < SIZE; i++)
	{
		if (solveFind == true) // если решение найдено, то заканчиваем перебор массива
		{
			break;
		}
		
		for (int x = i + 1; x < SIZE; x++) // перебираем массив i + (i + 1)
		{
			cout << arr[i] << " + " << arr[x] << " = " << arr[i] + arr[x] << endl;

			if (arr[i] + arr[x] == target) // проверяем дают ли элементы при сложении сумму равной числу 
			{
				cout << endl << "Решение найдено: " << arr[i] << " + " << arr[x] << " = " << arr[i] + arr[x] << endl;
				cout << "[ " << i << ", " << x << " ]" << endl;
				solveFind = true;  // решение найдено
				break;
			}
		}
		
	}

	if (solveFind == false)
	{
		cout << endl << "Решения нету :(" << endl;
	}

}



int main()
{
	
	int target;     // число которое будем искать
	cin >> target;
	

	const int SIZE = 5;
	int nums[SIZE]{ 1,2,3,4,5 }; // массив
	
	
	TwoSum(nums, SIZE, target);
	
}

Last updated