题目意思是:给一组数组,要使选取的子数组和(不用连续)最大,但不能同时选取相邻. 我的思路: 对于a[i]来说,要么选取,要么不选取.假设选取a[i],那么肯定不能选取a[i-1],只能看前0~i-2 中有没有能组成最大和的数.由此可以这样考虑 ,定义一个数组sum,sum[i]表示前i最大的和, sum[i] = max{sum[i-2]+a[i],a[i-1]} 代码如下 int rob(int* nums, int numsSize) { int * sum = (int *)malloc…