zoukankan      html  css  js  c++  java
  • 1354. 多次求和构造目标数组

    倒推

    每次选最大的,然后减去剩余的所有值的和,即为按题意的操作,该位置上次的值

    但倒退的话不用在意值的顺序,所以每次排一下序,选最大的即可

    显然[1,1,1000000000] 类似于这样的可能超时,所以不用减,用%

    当然如果只有两个值,且其中一个为1,因为任何数%1都为0,所以直接返回true就行

    也要注意如果剩余值的和大于等于 当前最大值,则返回false

    class Solution {
    public:
    
        bool isPossible(vector<int>& target) {
            long long sum = 0;
            int len = target.size();
            if(len == 1)
                if(target[0] == 1) return true;
                else return false;
            if(len )
            for(int i = 0; i < len; i++)
                sum += target[i];
            sort(target.begin(), target.end());
            while(target[len - 1] > 1)
            {
                
                if(target[len - 1] == target[len - 2]) return false;
                if(len == 2 && target[len - 2] == 1) return true;
                sum -= target[len - 1];
                if(sum >= target[len - 1]) return false;
                target[len - 1] %= sum;
                if(target[len - 1] == 0) return false;
                sum += target[len - 1];
                sort(target.begin(), target.end());
            }
            int cnt = 0;
            for(int i = 0; i < len; i++)
                if(target[i] != 1) return false;
            return true;
    
    
    
        }
    };
  • 相关阅读:
    SpringMVC-------1.spriingMVC简介和简单案例
    MyBatis-----7.pageHelper分页助手
    MyBatis-----4.实现关联表查询
    MyBatis-----6.逆向工程(generator)
    MyBatis-----1.MyBatis简介和使用
    MyBatis-----2.通过映射接口实现CRUD
    Spring-2
    Spring-1
    php调用阿里云手机归属地查询
    php身份证验证
  • 原文地址:https://www.cnblogs.com/WTSRUVF/p/15530989.html
Copyright © 2011-2022 走看看