2015-10-08 3 views
0

Как добавить строку внизу 2D LinkedList в O(1)? Я выполнял петли, но я должен реализовать его в O (1). Помогло ли кому-нибудь помочь? МетодДобавление дополнительной строки в конце 2D-связанного списка

[0,0,0,0] 
[0,0,0,0] 
[0,0,0,0] 
[0,0,0,0] 
.........//I want to add one more line here <----- 

LinkedList<LinkedList<T>> myList = new LinkedList<LinkedList<T>>(); 
public void addLastLine(){ 
    LinkedList<T> rowLine = new LinkedList<T>(); 
    this.lastRow += 1; 

     myList.add(lastRow, rowLine); 
     for(int col = 0; col <= origCol; col++){ 
      rowLine.add(col, this.element); 
     } 
} 
+0

Какую строку вы хотите добавить? –

+0

@DhiwaTdG, я хочу добавить еще одну дополнительную строку в конце в O (1) –

ответ

0

Изменение myList.add(lastRow, rowLine); в myList.add(rowLine);

Надстройка() добавит к концу в O (1) время

+0

Если подготовка 'lastRow' (заполнение ее значениями N) вычисляется по сложности. – RealSkeptic

+0

A @RealSkeptic действительно! :) – triadiktyo

+0

ОК, я укушу приманку. @RealSkeptic имеет точку в том, что цикл для заполнения строки не является O (1). В зависимости от того, что вам нужно делать с 'myList', вы можете вставить ту же ссылку на уже построенную строку LineLine. Но я не могу придумать сценарий реальной жизни, в котором это не вызовет проблем – triadiktyo

0

Вам не нужно указывать индекс для вставки в. Просто используйте add с новым списком и индексом.

Смежные вопросы