小弟刚刚收到同学问我的一个问题
假设你是一位职业的小偷,现在你锁定了某一条街上面的房子,
打算今天晚上对这排房子下手偷窃,每一间房子都存在着不同数目的钱。
但是相邻的两个房子间有警报系统会直接通知警察,
所以你不能连续偷两间相邻的房子,例如房子依照以下排列:A, B, C, D, E
,当妳要偷B房子时,则无法偷A与C。
给定一个阵列money[n],其中n代表有几间房子,
而阵列中的数值代表每个房子里面的金钱,
请设计一个函数来找到今晚能偷到最多的金钱数目。
例如给定阵列:
money[0] = 1
money[1] = 5
money[2] = 2
money[3] = 1
则身为职业的小偷会选择偷money[1]与money[3],而函数会回传6 (5+1)。
目前想法
假设有A B C D E F 五间房
组合就有
1. A C E
2. A C F
3. A D F
4. B D F
5. B E
然后把每个组合的数字加总起来取最大就行了
但还没有想到应该怎么去下loop
不知道有没有大大可以指点一下迷津
给提示也行QQ