-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfirst_tasks_Two_Sum.cpp
62 lines (62 loc) · 3.89 KB
/
first_tasks_Two_Sum.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
//#include <iostream>
//#include <vector>
//
//using namespace std;
//
//class Solution
//{
//public:
// //twoSum - это метод, который принимает 2 значения:
// //первое)vector<int>& nums - из ддругого вектора
// //второе)int target - из передоваемого числа в этот вектор.
// //(vector<int> twoSum) - мы знаем что перед именем метода/функции в С++
// //всегда указан тип возвращаемого значения, это может быть как встроенный типа данных
// //так и класс(в нашем случае vector - шаблон класса для контейнеров последовательности)
// //а как мы знаем класс - это новый тип данных, а для метода и нужен тип возвращаемых данных
// //поэтому мы и возвращаем два значения, тоесть пишем return { ii, jj }; - в этом случае
// //мы возвращаем новый обьект - vector, состоящий из 2-х значений
// vector<int> twoSum(vector<int>& nums, int target)
// {
// for (int ii = 0; ii < nums.size(); ii++)
// for (int jj = 0; jj < nums.size(); jj++)
// if (ii != jj)
// if ((nums[ii] + nums[jj]) == target)
// return { ii, jj };//возвращается объект класса vector, плюс vector это
// //тип данных, поэтому его можно использовать для определения метода
// return {};//если такой суммы нету то возвращем пустое значение с типом данных -
// //vector, это тип данных, потому что это класс, а все классы в С++ -
// // это отдельные типы данных, получается, что мы возвращаем пустой объект, класса
// //vector, потому что мы не нашли нужные значения.
// }
//};
//
//int main()
//{
// system("chcp 1251");
//
// vector<int> numbers = { 1, 2, 3, 4, 5, 6 ,7 ,8 };
// int result = 14;
//
// Solution object;
//
// vector<int> target;//по выше указанным правилам мы и создаем доп вектор, чтобы
// //записать сюда значение, котрое вернет метод, поскольку другой тип данных(не шаблон
// // класса vector) - не сможет принять возвращаемое значение.
//
// //попробуем вместо вектора подставить динамический массив, ведь это
// //схожие стуктуры данных, просто вектор - это улучшенный динамический массив.
// int* array1 = new int[2];
//
// target = object.twoSum(numbers, result);
// //array1 = object.twoSum(numbers, result);// как можно заметить ничего не вышло
// //а все потому, что класс в С++ является отдельным типом данных, в то время как массив
// //это структура данных, а не тип данных, при этом конечным обьект класса вектор(тоесть это
// //улучшенный динамический массив) - является структурой данных, а не типом данных
//
// for (int ii = 0; ii < 2; ii++)
// cout << (target[ii]) << ' ';
//
// delete[] array1;//чистим память
//
// return 0;
//}