запускать не хочет
#include <iostream>
int* twoSum(int* array, int k) {
int l = 0, r = sizeof(array) / sizeof(array[0]) - 1, k = 7;
while (l < r) {
int sum = array[l] + array[r];
if (sum == k) {
return new int[] { array[l], array[r] };
}
if (sum < k) {
l++;
} else {
r--;
}
}
return new int[0];
}
int main() {
int array[] = { -3, 2, 5, 9, 11, 17 };
int* pair_k[] = {twoSum(array, 7)};
for (auto i : pair_k) {
std::cout << i << " ";
}
}
godbolt.org
Круто ты конечно придумал
sizeof(array) / sizeof(array[0]) тут уже проблемы
Он что то на мою k жалуется
dilshod@macbook:~$ g++ test.cpp test.cpp:4:32: warning: 'sizeof (array)' will return the size of the pointer, not the array itself [-Wsizeof-pointer-div] int l = 0, r = sizeof(array) / sizeof(array[0]) - 1, k = 7; ~~~~~~~~~~~~~ ^ test.cpp:3:18: note: pointer 'array' declared here int* twoSum(int* array, int k) { ^ test.cpp:4:56: error: redefinition of 'k' int l = 0, r = sizeof(array) / sizeof(array[0]) - 1, k = 7; ^ test.cpp:3:29: note: previous definition is here int* twoSum(int* array, int k) { ^ test.cpp:9:21: error: array size must be specified in new expression with no initializer return new int[] { array[l], array[r] }; ~~~^~ test.cpp:25:8: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions] for (auto i : pair_k) { ^ test.cpp:25:15: warning: range-based for loop is a C++11 extension [-Wc++11-extensions] for (auto i : pair_k) { ^ 3 warnings and 2 errors generated. Вот тебе все ошибки, если он тебе ничего не выдает
спасибо теперь ошибок нет
Обсуждают сегодня