空间放两个网站/武汉抖音seo搜索
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击http://www.captainbed.net
package live.every.day.ProgrammingDesign.CodingInterviewGuide.RecursionAndDynamicPrograming;/*** 排成一条线的纸牌博弈问题** 【题目】* 给定一个整型数组arr,代表数值不同的纸牌排成一条线。玩家A和玩家B依次拿走每张纸牌,规定玩家A先拿,玩家B后拿,但是每个玩* 家每次只能拿走最左或最右的纸牌,玩家A和玩家B都绝顶聪明。请返回最后获胜者的分数。** 【难度】* 中等** 【解答】* 暴力递归的方法。定义递归函数f(i,j),表示如果arr[i..j]这个排列上的纸牌被绝顶聪明的人先拿,最终能获得什么分数。定义递* 归函数s(i,j),表示如果arr[i..j]这个排列上的纸牌被绝顶聪明的人后拿,最终能获得什么分数。** 首先来分析f(i,j),具体过程如下:* 1.如果i==j(即arr[i..j])上只剩一张纸牌。当然会被先拿纸牌的人拿走,所以返回arr[i]。* 2.如果i!=j。当前拿纸牌的人有两种选择,要么拿走arr[i],要么拿走arr[j]。如果拿走arr[i],那么排列将剩下* arr[i+1..j]。对当前的玩家来说,面对arr[i+1..j]排列的纸牌,他成了后拿的人,所以后续他能获得的分数为s(i,j-1)。