zoukankan      html  css  js  c++  java
  • LeetCode219周赛

    class Solution {
    public:
        int cnt = 0;
        int numberOfMatches(int n) {
            // 偶数 / 2
            // 奇数 产生 (n - 1) / 2  + 1 个队伍
            if (n == 1) return cnt;
            if (n % 2 == 0) {
                cnt += n / 2;
                n/=2;
            }
            else {
                cnt += (n - 1 ) / 2 ;
                n = (n - 1 ) / 2 + 1;;
            }
            return numberOfMatches(n);
        }
    };
    

    class Solution {
    public:
        int minPartitions(string s) {
            int len = s.length();
            int ans = 0;
            int max = 0;
            
            int temp = 0;
            while(1) {
                int flag = 0;
                for (int i = 0; i < len; i++) {
                    
                    if (s[i] >= '1') {
                        s[i] = s[i] - 1;
                        flag = 1;
                    }
                }
                if (flag == 1) {
                    ans ++;
                } else {
                    return ans;
                }
            }
            
        }
    };
    

    class Solution {
    public:
        int stoneGameVII(vector<int>& w) {
            int n = w.size();
            vector<int> s(n + 1);
            for (int i = 1; i <=n ; i++) s[i] = s[i - 1] + w[i - 1]; // 前缀和
            vector<vector<int> > f(n + 1, vector<int>(n + 1));
            for (int len = 2; len <= n; len ++) {
                for (int i = 1; i + len - 1 <= n; i++) {
                    int j = i + len - 1;
                    f[i][j] = max(s[j] - s[i] - f[i + 1][j], s[j - 1] - s[i - 1] - f[i][j - 1]);
                }
            }
            return f[1][n];
        }
    
    };
    

    class Solution {
    public:
        int maxHeight(vector<vector<int>>& w) {
            for (auto& x:w ) sort(x.begin(), x.end()); // 先旋转调整长宽高 保证高最大
            
            sort(w.begin(), w.end(), greater<vector<int>>()); // 从大到小排序
            int n = w.size();
            vector<int> f(n); // 状态数组
            
            int res = 0;
            for (int i = 0; i < n; i++) {
                f[i] = w[i][2];
                for (int j = 0; j < i; j++) {
                    if (w[j][0] >= w[i][0] && w[j][1] >= w[i][1] && w[j][2] >= w[i][2]) {
                        f[i] = max(f[i], f[j] + w[i][2]);
                    }
                }
                res = max(res, f[i]);
            }
            return res;
        }
    };
    
  • 相关阅读:
    12-五子棋游戏:享元模式
    11-制作糖醋排骨:外观模式
    10-蒸馒头:装饰者模式
    09-公司层级结构:组合模式
    08-开关与电灯:桥接模式
    07-电源转换:适配器模式
    将博客搬至CSDN
    iview和element中日期选择器快捷选项的定制控件
    详解AJAX工作原理以及实例讲解(通俗易懂)
    最全肌肉锻炼动图
  • 原文地址:https://www.cnblogs.com/DengSchoo/p/14129124.html
Copyright © 2011-2022 走看看