Как мне улучшить свое решение для кодирования и каковы способы улучшения движения вперед? [закрыто]JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как мне улучшить свое решение для кодирования и каковы способы улучшения движения вперед? [закрыто]

Сообщение Anonymous »

Я пересматриваю алгоритмы и DS в Java, и я смог выполнить задачи в течение 4 часов, выявляя проблему и выясняя шаблон, чтобы выполнить все тестовые примеры в рамках курса. Проблема относится к связанным спискам, с задачами, которые вы должны обратить вспять между двумя узлами, данными вам. Я вижу много повторяющегося кода в моем решении, но я не уверен, как его улучшить. Я обнаружил, что часто пытаюсь решить проблему и поддерживать низкую сложность времени, какие предложения у вас есть при усовершенствовании моих навыков, когда придумываете решение? Я также принял во внимание количество времени, которое я занимаю, но это было трудно для меня лично.
Coding reffice + тестовые случаи < /p>
public void reverseBetween(int m, int n){

// creating dummy nodes to keep order of orig. list while swapping

Node beforefirstNode = new Node(0);
Node middleofSwap = new Node(0);
Node aftersecondNode = new Node(0);
Node firstheadPointer = beforefirstNode;
Node secondheadPointer = middleofSwap;
Node lastheadPointer = aftersecondNode;

// Nodes to store nodes m,n, and traversing node
Node firstNode = new Node(0);
Node secondNode = new Node(0);
Node temp = getHead();

// condition ensures that there is atleast 1 node between for swap,
// and that it doesn't exceed length of list

int swapdist = n - m;
if (swapdist >= 1 && length > 1){
for(int i = 0; i < length; i++){
if (i < m) {
beforefirstNode.next = temp;
temp = temp.next;
beforefirstNode = beforefirstNode.next;
beforefirstNode.next = null;
}
else if (i == m) {
firstNode = temp;
temp = temp.next;
firstNode.next = null;
} else if (i > m && i < n) {
middleofSwap.next = temp;
temp = temp.next;
middleofSwap = middleofSwap.next;
middleofSwap.next = null;
} else if (i == n) {
secondNode = temp;
temp = temp.next;
secondNode.next = null;
aftersecondNode.next = firstNode;
aftersecondNode = aftersecondNode.next;
aftersecondNode.next = null;
} else {
aftersecondNode.next = temp;
temp = temp.next;
aftersecondNode = aftersecondNode.next;
aftersecondNode.next = null;
}
}
// putting second node onto first partitioned list
beforefirstNode.next = secondNode;
beforefirstNode = beforefirstNode.next;

// combining into a single list
// list 3 => list 2
middleofSwap.next = lastheadPointer.next;
lastheadPointer = null;
// list 2 => list 1
beforefirstNode.next = secondheadPointer.next;
secondheadPointer = null;
// have head point to first node, setting pointer to null;
head = firstheadPointer.next;
firstheadPointer = null;

}

}


Подробнее здесь: https://stackoverflow.com/questions/796 ... ng-forward
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Могу ли я улучшить свое решение Numpy для упражнения?
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Могу ли я улучшить свое решение Numpy для упражнения?
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Могу ли я улучшить свое решение Numpy для упражнения?
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Могу ли я улучшить свое решение Numpy для упражнения?
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Могу ли я улучшить свое решение Numpy для упражнения?
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»