Java Homework Help - Рекурсия с массивом - PullRequest
1 голос
/ 26 марта 2011

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

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

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

assertEquals (2, rf).arrayRange (new int [] {1, 2, 3}));

assertEquals (2, rf.arrayRange (new int [] {3, 2, 1}));

assertEquals (0, rf.arrayRange (new int [] {3}));

assertEquals (3, rf.arrayRange (new int [] {-3, -2, -5, -4}));

// Условие: a.length> 0 public int arrayRange (int [] a)

1 Ответ

2 голосов
/ 26 марта 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...