У меня нет никакого опыта в таких вещах, поэтому, вероятно, есть лучшие способы сделать это, но у меня есть некоторые идеи, которые могут быть полезны.
В настоящее время вы вычисляете каждыйвозможная комбинация, вы должны иметь возможность изменить свой алгоритм так, чтобы вы могли исключать некоторые комбинации без необходимости их вычисления.
Я бы сначала отсортировал массив, что позволит вам исключить некоторые значения безвычисляя их.
Например, если у вас есть массив, который выглядит как [1,2,4,5,9] и min = 11 и max = 14, тогда ваш алгоритм проверит 1 + 2,1 +4,1 + 5,1 + 9, затем 2 + 4, 2 + 5, 2 + 9, 4 + 5, 4 + 9, прежде чем прийти к ответу.
Если вместо этого вы сначала начнете с наибольшего числа, вы можете исключить все возможные комбинации 1, выполнив вычисления 9 + 1, так как 9 + 1 <= 11, это должно быть так, что все остальные возможные комбинации 1 недействительныдля суммы двух чисел, то же самое со всеми возможными 2 комбинациями.Если вы добавите такую логику в свой код, у вас должно быть меньше лишних вычислений, надеясь ускорить ваш код.</p>