2011-03-26 2 views
1

У меня есть набор проблем рекурсии, которые мне нужно сделать. Я закончил 3 из 4 из них, которые нам дали, но мне тяжело обволакивать мою голову вокруг этой последней. Мне не обязательно нужен фактический ответ, но, возможно, просто укажите мне в правильном направлении, потому что я даже не вижу, что мое условие остановки должно быть на этом. И обратите внимание, он должен быть рекурсивным, без петель и т. Д.Справка по домашнему заданию Java - рекурсия с массивом

Заранее благодарим за предоставленную помощь!

Записать рекурсивный метод arrayRange, который возвращает максимальное целое число минус минимальное целое число в заполненном массиве int. Использовать рекурсию; не используйте цикл. Следующие утверждения должны пройти (обратите внимание на ярлык, чтобы передать ссылку на новый массив - он сохраняет вашу запись немного кода (это передает массив, построенный как параметр):

assertEquals (2, rf.arrayRange (новый INT [] {1, 2, 3}));

assertEquals (2, rf.arrayRange (новые INT [] {3, 2, 1}));

assertEquals (0, RF .arrayRange (новые INT [] {3}));

assertEquals (3, rf.arrayRange (новый INT [] {-3, -2, -5, -4}));

// Предпосылка: a.length> 0 общественного ИНТ ArrayRange (ИНТ [])

+0

с просьбой помочь в домашних заданиях, здесь не очень хорошо. –

+3

Просить о помощи в порядке. Просить нас сделать это не так. –

+0

Правда! И ОП не хочет прямого ответа, но помогает. – gideon

ответ

2

Упор состояние, когда есть только две вещи, оставленные: максимум и минимум. Тогда просто верните разницу. (Также обрабатывайте случай 1 или 0 элементов, рассматривайте ввод, например, в тестовых случаях.)

Теперь .. как уменьшить список каждого прохода? :) Я бы рассмотрел возможность проверки первых трех значений за раз (из трех, только два должны остаться на рекурсивном шаге).

Счастливые домашние задания.

+0

Это делает полный смысл теперь, когда вы так выразились. Огромное спасибо! Пойду к работе над этим решением. Должен ли я публиковать решение, когда я его получаю, или это плохая идея? – user677786

+0

@ user677786 Если вы * сделаете * хотите опубликовать решение здесь, подумайте о том, чтобы обновить исходное сообщение (с предупреждением/предупреждением о том, что ваше решение ниже: это может забрать удовольствие для кого-то еще!). Я бы по крайней мере подождал, пока не закончится задание ;-) –

+0

Хорошо, выяснилось: P Я выложу решение после установленной даты: P Еще раз спасибо! – user677786

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