Решение 1: O(n)
время & amp; O(n)
пробел
Псевдокод
x^4
x
проверьте, есть ли val-x^4
в хеш-таблице [ 1144] Если шаг 2 находит совпадение, то существует пара, которая удовлетворяет требованию.
Сложность
Сложность составляет O(n)
для построения хэш-таблицы и O(n)
для сканирования. Кроме того, требуется дополнительное пространство O(n)
.
Реализация
Для реализации c можно использовать unordered_set
.
x^4+x^4=val
, где x
появляется только один раз на входе). Решение 2: O(n*log(n))
время & amp; O(1)
пробел
Псевдокод
x
двоичный поиск по sqrt(val-x^4)
Если шаг 2 находит совпадение, то существует пара, удовлетворяющая требованию.
Сложность
Сложность сортировки составляет O(n*log(n))
. Каждый двоичный поиск требует O(log(n))
времени и выполняется n
раз. Следовательно, общая временная сложность составляет O(n*log(n))
Реализация
Для реализации c можно использовать qsort
. [+1155]
Да, LINQ поможет остановить Внедрение SQL.
LINQ к SQL передает все данные базе данных через параметры SQL. Так, хотя SQL-запрос составлен динамично, значения являются substitued стороной сервера через параметры, охраняющие против наиболее распространенной причины атак с использованием кода на SQL.
кроме того, см. , Устраняют Атаки с использованием кода на SQL Безболезненно с LINQ для некоторой информации
Вы хороши для движения. Linq действительно параметризовал данные, которые он отправляет в базу данных.
Использование свойство Log для проверки, что происходит: dc.Log = Console.Out;
Это должно, потому что SQL испустил использование, названное параметрами, которые не могут быть использованы для выполнения произвольного SQL.