先发后发策略 java

题目:
在这里插入图片描述
方法一:

//先发策略
 public static int f(int[] arr,int i,int j){
  if(i == j){
   return arr[i];
  }
  return Math.max(arr[i]+s(arr,i+1,j), arr[i]+s(arr,i,j-1));  
 }

//后发策略
 private static int s(int[] arr, int i, int j) {
  if(i == j){
   return 0;
  }
  return Math.min(f(arr,i+1,j), f(arr,i,j-1));
 }

public static void main(String[] args) {
  int arr[] = {5,6,7,2,1,3,2,4,5,6};
  int max = Math.max(f(arr,0,arr.length-1), s(arr,0,arr.length-1));
  System.out.println(max);
 }

方法二:

发布了27 篇原创文章 · 获赞 14 · 访问量 2234

猜你喜欢

转载自blog.csdn.net/qq_41585840/article/details/86756156
今日推荐