Как вы вычисляете наименьший обход стоимости целочисленного массива с помощью шагов и переходов, а также подсчитываете первый и последний элементы массива? Шаг переходит к следующему непосредственному значению в массиве, например. array [currentIndex + 1], а скачок перемещается двумя точками, например. array [currentIndex + 2]. У меня есть следующая функция, которую я хочу вернуть начальную минимальную сумму, она добавляет первый и последний элементы к сумме, но я застрял на средних значениях массива.Наименьшая стоимость обхода массива
An example of this would be {2, 10, 4, 14, 44, 28, 16, 18} -> 66
which would add indexes 0, 2, 3, 5, and 7.
====
public int Cost(int[] board)
{
int sum = board[0];
int index = 0;
while (index < board.Length)
{
//Add the final array value to the sum
if (index + 1 == board.length)
{
sum += board[index];
break;
}
//Add other values here
index++;
}
return sum;
}
Как бы вы решили это с помощью карандаша и бумаги? Вам нужен алгоритм (пошаговый процесс), прежде чем вы напишете первую строку кода. Каков ваш предложенный алгоритм? – mellamokb
@mellamokb Моя первая мысль заключалась в том, чтобы увидеть, был ли прыжок или шаг меньше, а затем добавить его к сумме и перейти к соответствующему индексу и повторению действия. – user3277752
Это отличная идея. Поэтому, чтобы сделать его более «механическим», 1) взгляните на следующие два числа (шаг против прыжка). 2) сравните, какой из них меньше. 3) возьмите меньший, добавьте его в свою сумму и сделайте следующую отправную точку. Можете ли вы написать код для этого? – mellamokb