Skip to content

Homework 5 is done#2

Open
ushki92 wants to merge 5 commits into
masterfrom
lesson5
Open

Homework 5 is done#2
ushki92 wants to merge 5 commits into
masterfrom
lesson5

Conversation

@ushki92

@ushki92 ushki92 commented Sep 1, 2021

Copy link
Copy Markdown
Owner

No description provided.

@DisterDE DisterDE left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Первым делом скажу, что прошлый пулл реквест ты зря закрыла.
Его нужно было мержить.
Тогда бы в этот пулл не попали изменения по гитигнору и прошлому дз.
Так же стоит добавить, что ветка текущего урока была создана от ветки прошлого, что тоже неправильно. Новые ветки мы создаем ТОЛЬКО ОТ МАСТЕРА.
После окончания работы над этим дз нажми merge, а не close pull request.

С 5 и 6 заданием есть некоторые проблемы.
В основном с 6.
5ое решено, но ты его посчитала за компьютер.
Последние два имеет смысл доработать, если будут идеи.
В остальном всё как обычно. Доработки по комментариям крайне рекомендуются.
В целом молодец!

Comment on lines +26 to +27
int maxSalary = 0;
int minSalary = 200001;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Имело смысл инициализировать оба значения нулями или значением из arr[0]

}
System.out.println("Минимальная сумма трат за день составила " + minSalary + " рублей. Максимальная сумма трат за день составила " + maxSalary + " рублей.");
//Task3
float averageSalary = sumMonth / 30f;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sumMonth / (float) arr.length

Comment on lines +48 to +52
arr2[0][0] = 1;
arr2[0][2] = 1;
arr2[1][1] = 1;
arr2[2][0] = 1;
arr2[2][2] = 1;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А если поле станет 4х4?
Нет, это нужно делать в цикле.
Если посмотреть на индексы, станет видно, что последовательность индексов присутствует.
Реализуй это.

Comment on lines +62 to +68
int[] arr4 = {1, 2, 3, 4, 5};
System.out.println(Arrays.toString(arr3));
for (int r = 0; r < arr3.length; r++) {
if (arr3[r] != arr4[r]) {
arr3[r] = arr4[r];
}
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Здесь нужно arr4 создать пустым, а уже в цикле его задать в том виде, в котором ты его создала.

Comment on lines +75 to +84
float y = arr5.length / 2f;
for (int i = 0; y > i; ) {
if (arr5[i] != arr5[z]) {
x = arr5[i];
arr5[i] = arr5[z];
arr5[z] = x;
}
z--;
i++;
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Здесь бы лучше подошел цикл while (x < z), а от y можно было бы избавиться.

Comment on lines +91 to +97
if (arr6[l] + arr6[m] != -2) {
m--;
} else {
System.out.println(arr6[l] + " " + arr6[m]);
m--;
break;
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

В этом блоке m-- повторяется в обоих случаях.
Следовательно, условия для этого не требуются.
m-- нужно вынести за цикл.

Если мы это сделаем, то блок if будет пустым, значит он не нужен.
Следовательно, нам нужно вместо else написать
if (arr6[l] + arr6[m] == -2) и поместить в этот блок то, что сейчас в else (кроме m--, мы это выносим за условные блоки)

Т.е.

if (arr6[l] + arr6[m] == -2) {
  System.out.println(arr6[l] + " " + arr6[m]);
  break;
}
m--;
if (m - l == 1) {
  m = arr6.length - 1;
  l++;
}

Comment on lines +108 to +120
for (int l = 0; p - l > 0; ) {
if (arr7[l] + arr7[p] != -2) {
p--;
} else {
System.out.println(arr7[l] + " " + arr7[p]);
p--;
}
if (p - l == 1) {
p = arr7.length - 1;
l++;
}
}
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Что по алгоритму в целом.
Твой код в текущем варианте находит первую пару за 12 шагов. Все пары за 37 шагов.
Его можно написать так, что он будет первую находить за 5 шагов, а все пары за 7 шагов.
Идея с головой и хвостом отличная и именно с ней решается эта задача, но нужно подумать ещё раз.
Возможно, ты сможешь найти решение.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants