这是一道区间dp的问题,我们可以先用递归的方法求解。
int chooseStart = nums[start]-dfs(nums,start+1,end);//表示先手拿了第一个数之后,减去,往后对手赢过自己的分数(对剩余数组递归)
int chooseEnd = nums[end] - dfs(nums,start,end-1);//表示先手拿了最后一个数之后,减去,往后对手赢过自己的分数(对剩余数组递归)
二者选择其中最大的一种
这是一道区间dp的问题,我们可以先用递归的方法求解。
int chooseStart = nums[start]-dfs(nums,start+1,end);//表示先手拿了第一个数之后,减去,往后对手赢过自己的分数(对剩余数组递归)
int chooseEnd = nums[end] - dfs(nums,start,end-1);//表示先手拿了最后一个数之后,减去,往后对手赢过自己的分数(对剩余数组递归)
二者选择其中最大的一种