Вам просто нужно настроить свое решение, чтобы подсчитать решение, а не возвращать его после того, как найдено первое решение:
def find3Numbers(A,arr_size,sum):
count_sums = 0
for i in range(0,arr_size-1):
#Find pair in subarray A[i+1..n-1]
# with sum equal to sum - A[i]
s = set()
curr_sum = sum - A[i]
for j in range(i+1,arr_size):
if (curr_sum - A[j]) in s:
count_sums += 1 # Count here
s.add(A[j])
return count_sums # Finally return the count
Обратите внимание, это не означает, что ваш алгоритм теперь корректен. Двигаясь дальше, вы можете использовать счетный набор, а не обычный набор для s
. См. collections.Counter
.
Возможно сделать что-либо, учитывая достаточное количество времени, денег и ресурсов. Действительно ли это практично? Вне тривиальных примеров не действительно. Или скорее это зависит от того, что составляет приемлемый коэффициент ошибок.
настоящая проблема состоит в том, что идиомы отличаются в Java от C++. Java к C#, например, на самом деле был бы намного легче (потому что идиомы намного более подобны). Самое большое, конечно - то, что C++ имеет деструкторы и вручную управляемую память. Java использует наконец блоки для этого вида поведения и имеет сборку "мусора".
Также Java имеет общий Объектный супертип. C++ не делает.
дженерики к шаблонам были бы почти на невозможном, который я воображу.
Возможно, никакой вопрос, но это не будет настолько просто. Это был бы компилятор Java, который генерирует C++.
, Если Вы хотите сделать это с нуля, это будет очень твердо, необходимо сделать, вся работа javac и JVM делают для Вас (например, сборка "мусора").
Btw. Google имеет Java к компилятору JavaScript (включенный в GWT)
Как сказано было бы трудно преобразовать Java в C++, но у нас могут быть applicaiton или инструмент, который генерирует код в Java и equivalnet код C++.
я знаю один applicaiton, который генерирует код в C++/Java/C#, учитывая модель, которая поступает по-своему к deifine он.
то, Что инструмент принадлежит CA и имени, является CA Plex. Поиск на www.ca.com
Существуют программы там, которые утверждают, что они могут сделать это, но ни один не получил достаточно популярности, которая будет часто упоминаться, таким образом, мы оставим их при "попытках". Создание преобразователя потребовало бы большого количества AI, встроенного в Вашу программу. Трудность увеличена в десять раз, когда колебание включено, потому что GTK/wxWidgets/Qt/win32 API все отличаются значительно от колебания. Но это возможно. Не то, чтобы качество кода будет большим, и никакие гарантии, которые Ваша программа не разрушит должный разделить методы обработки памяти, но это возможно.
http://www.tangiblesoftwaresolutions.com/Order/Order_Upgrade_Instant_CPlus_Java_Edition.htm
Зависит от домена того, где код будет использоваться, с точки зрения изучения, возможно, это могло бы быть интересно.
я просто нашел это через Google, поскольку я не забыл видеть один в Univeristy, который создал код на основе uml.
Что-то интересное могло бы быть инструментом, который переводит java в "C ++ с использованием Java API" (например, GNU GCJ CNI), остается одна проблема - управлять array.length
(массив, а не вектор) ...