zoukankan      html  css  js  c++  java
  • 464 Can I Win 我能赢吗

    详见:https://leetcode.com/problems/can-i-win/description/

    C++:

    class Solution {
    public:
        bool canIWin(int maxChoosableInteger, int desiredTotal)
        {
            if (maxChoosableInteger >= desiredTotal)
            {
                return true;
            }
            if (maxChoosableInteger * (maxChoosableInteger + 1) / 2 < desiredTotal) 
            {
                return false;
            }
            unordered_map<int, bool> m;
            return canWin(maxChoosableInteger, desiredTotal, 0, m);
        }
        bool canWin(int length, int total, int used, unordered_map<int, bool>& m) 
        {
            if (m.count(used))
            {
                return m[used];
            }
            for (int i = 0; i < length; ++i) 
            {
                int cur = (1 << i);
                if ((cur & used) == 0) 
                {
                    if (total <= i + 1 || !canWin(length, total - (i + 1), cur | used, m)) 
                    {
                        m[used] = true;
                        return true;
                    }
                }
            }
            m[used] = false;
            return false;
        }
    };
    

     参考:https://www.cnblogs.com/grandyang/p/6103525.html

  • 相关阅读:
    Gym
    Gym
    Gym 101147B
    巴什博弈入门
    Hihocode 1304
    hihocoder 1441
    web前端
    ajax json html 结合
    关于获取各种浏览器可见窗口大小:
    原生JS 购物车及购物页面的cookie使用
  • 原文地址:https://www.cnblogs.com/xidian2014/p/8902469.html
Copyright © 2011-2022 走看看