leetcode[375]Guess Number Higher or Lower II

问题:继[374]Guess Number Higher or Lower,升级版1~n之间猜数游戏。猜错即付猜的数字的钱,要求最小化玩家最大损失。

输入:n

输出:最大损失

主要思想:动态规划

举例n=3时,猜2即可最小化最大面临的损失。

定义dp(i,j)为(i,j)区间内最坏情况下猜中数的最小开销(保证能赢得游戏)。

class Solution {
public:
    int getMoneyAmount(int n) {
        vector> res(n+1,vector (n+1));
        for(int len=2;len<=n;++len)
        {
            for(int start=1;start<=n-len+1;++start)
            {
                int minres=INT_MAX;
                for(int pick=start;pick

复杂度分析:时间复杂度为O(n^3),空间复杂度为O(n^2).

你可能感兴趣的:(programming)