// 动态规划出最大值和第二大的值,并不断更新最大值
int rob(int* nums, int numsSize)
{
	if (numsSize == 1) 
	{
        return nums[0];
    } 
	else if (numsSize == 2) 
	{
        return fmax(nums[0], nums[1]);
    }
	int i=0;
	
	// 这里定义初值,用于比较 
	int l=nums[0];
	int s=fmax(nums[0],nums[1]);   // 第一次动态规划,比较数组前两个元素 
	
	for(i=2;i<numsSize;i++)   // 注意这里从 i+2 开始 
	{
		int temp=s;
		s=fmax(nums[i]+l,s);  // 偷钱的最大值 
		l=temp;               // l 始终作为动态规划中下 第二大 来存储,也就满足了隔一家偷钱的要求 和 后期超越的需求 
	}
	return s;
}