Два числа определить массив, который удовлетворяет условие - небольшие C # алгоритма вопросы --1

Удобно для того чтобы положить что-то в Интернете, посмотреть на время. Код может быть ошибкой и не является оптимальным решением для справочных целей.

 

Название: массив ввода и числа в порядке возрастания, найти два числа в массиве, и таким образом, чтобы они точно цифровой вход.

Требуемое время сложность О (п). При наличии несколько равно цифровой вход и цифровой выход может быть любой парой.

Например, цифровой входной массив 1,2,3,4,7,11,12,15 и 15. С 4 + 11 = 15, выходной сигнал 4 и 11.

 

 

Этот вопрос очень просто, такой журнал, чтобы определить, есть ли. Конечно, вы можете также поместить число всех имеющих право и все выходные, чтобы узнать. Следующий номер кода для удовлетворения потребностей производства, но не учитывает случай повторения, например, есть два 4, два 11. Только в этом случае выдает пару 11 + 4 = 15.

Основная идея: Так как массив упорядочен, поэтому начните с головы и хвоста, глядя двигаться ближе к центру, чтобы соответствовать условиям пар чисел.

Код выглядит следующим образом (с #):

 

Просмотр кода
 1          // прямое решение, в котором все возможные комбинации выходного сигнала (выход только повторяется один раз)  2 публичного статического пустот  ISEXIST ( INT [] на туАггау,  INT  значение)  . 3          {              . 4 INT  Пуск =  0 ;  . 5 INT  Конец = myArray.length -  1. ;  . 6 ЕСЛИ  (The туАггау [Конец] <значения /  2 )  . 7              {  . 8                  Console.WriteLine ( "Такой не пар существует " );  9 .
             

             
             
             


             }
10  
11 в               то время  (начало <конец)
12              {
13 ,                   если  (туАггау [начало] + туАггау [конец]> значение)
14                  {
15                      end--;
16                  }
17                   еще
18                  {
19 ,                       если  (туАггау [начало] + туАггау [конец] <значение)
20                      {
21                          начала ++;
22                      }
23                       еще
24                      {
25                          Console.WriteLine ( " {0} + {1} = {2} " , MyArray [начало ++], туАггау [end--], значение);                        
26                           // не рассматривать дублированные пары 27                      } 28                  } 29              } 30          }



 

Воспроизводится в: https: //www.cnblogs.com/CSharpSPF/archive/2012/04/03/2431536.html

рекомендация

отblog.csdn.net/weixin_34309543/article/details/93530996