美文网首页每日打卡
2021-11-12 375猜数字大小

2021-11-12 375猜数字大小

作者: 16孙一凡通工 | 来源:发表于2021-11-12 10:07 被阅读0次

动态规划的思路,注意此题似乎没法用二分直接做,相反似乎是先猜比选择的数字大的,然后再向下寻找,最终找到选择的数字i,接着构造动态规划方程,dp[i][j]=k+Math.max(dp[i][k-1],dp[k+1][j]);
最终找出k从i到j内所有可能情况的最小值。
java版本

class Solution {
    public int getMoneyAmount(int n) {
        int[][] dp=new int[n+1][n+1];
        for(int i=n-1;i>=1;i--){
            for(int j=i+1;j<=n;j++){
                int minCost=Integer.MAX_VALUE;
            for(int k=i;k<j;k++){
               int   cost=k+Math.max(dp[i][k-1],dp[k+1][j]);
               minCost=Math.min(minCost,cost);
            
            }
           dp[i][j]=minCost;
            }
            
         }
           return dp[1][n];
 
        }

    }

Go版本

import ( "math"
"fmt")
func getMoneyAmount(n int) int {


   dp:=make([][]int,n+1)

   for i:=range dp{
       dp[i]=make([]int,n+1)
   }

    // i表示提供的数字
    // j表示每次初始猜测的数字
    // k表示猜测数字与实际数字相差的后续猜测数
//    INT_MAX:= int(^uint(0) >> 1)
   minCost:=0;


   for i:=n-1;i>=1;i--{
    for j:=i+1;j<=n;j++{
        minCost=math.MaxInt32;
        for k:=i;k<j;k++{
            cost:=k+max(dp[i][k-1],dp[k+1][j])
            minCost=min(cost,minCost);

        }
        dp[i][j]=minCost;
    }
   }
//    fmt.Println(dp)

    return dp[1][n];
}

func  min(num1 int,num2 int)int{
if num1>num2{
    return num2;
}
return num1;
}
func  max(num1 int,num2 int)int{
if num1>num2{
    return num1;
}
return num2;
}

相关文章

  • 2021-11-12 375猜数字大小

    动态规划的思路,注意此题似乎没法用二分直接做,相反似乎是先猜比选择的数字大的,然后再向下寻找,最终找到选择的数字i...

  • (区间dp,minmax问题,极大极小)375. 猜数字大小 I

    375. 猜数字大小 II[https://leetcode-cn.com/problems/guess-numb...

  • 矩阵链乘法

    887鸡蛋掉落 312戳气球 132分割回文串 375猜数字大小

  • T375、猜数字大小||

    我们正在玩一个猜数游戏,游戏规则如下:我从 1 到 n 之间选择一个数字,你来猜我选了哪个数字。每次你猜错了,我都...

  • 猜数字大小 II

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/guess-...

  • 374. 猜数字大小

  • 374-猜数字大小

    猜数字大小 题目 我们正在玩一个猜数字游戏。 游戏规则如下:我从1到n选择一个数字。 你需要猜我选择了哪个数字。每...

  • 374. 猜数字大小

    题目 我们正在玩一个猜数字游戏。 游戏规则如下:我从 1 到 n 选择一个数字。 你需要猜我选择了哪个数字。每次你...

  • 374-猜数字大小

    我们正在玩一个猜数字游戏。 游戏规则如下:我从1到n选择一个数字。 你需要猜我选择了哪个数字。每次你猜错了,我会告...

  • 2019-02-23 Day49

    1.猜数字大小我们正在玩一个猜数字游戏。 游戏规则如下:我从 1 到 n 选择一个数字。 你需要猜我选择了哪个数字...

网友评论

    本文标题:2021-11-12 375猜数字大小

    本文链接:https://www.haomeiwen.com/subject/ocvnzltx.html