Просто пытаюсь объяснить природу этой проблемы, и я надеюсь, что она последует - Думайте в терминах, что если есть только два дома < h1 <cost: 90>, h2 <cost: 100>>
.Какой будет ответ?Можно было бы пойти на h2
.Это наш базовый случай проблемы, и мы будем расширять его отсюда. Расширение - 3 дома - <h1 <cost: 90>, h2 <cost: 100>, h3 < cost: 75>>
.Если вы добываете h2
, вы не можете добывать <h1> and <h3>
, но вы хотите добыть <h1> and <h3>
, потому что это дает вам больше суммы.поэтому, рекурсивно, в текущий момент времени t, если я сохраню свой результат в переменной dp
и recursive func(int index,int[] array)
, я могу ответить в виде dp[index]=max(arr[index]+dp[index+2],dp[index+1])
.В нем говорится, что если я получу лут ith House
, то я не смогу лут next house
, так что остающаяся проблема, которую нужно решить, это i+2th index