首页 > 其他分享 >1798.你能构造出连续值的最大数目

1798.你能构造出连续值的最大数目

时间:2023-06-13 16:58:29浏览次数:39  
标签:1798 int res coins 构造 数目 size

问题描述

1798.你能构造出连续值的最大数目

解题思路

贪心+动态规划

首先将数组按升序排序,令res[n]为前n个数所能构造出的连续整数的最大值:

  • if (coins[i - 1] > res[n - 1] + 1), res[n] = res[n - 1] + coins[i - 1];
  • else, res[n] = res[n - 1];

代码

class Solution {
public:
    int getMaximumConsecutive(vector<int>& coins) {
        std::sort(coins.begin(), coins.end());
        vector<int> res(coins.size() + 1, 0); // 表示前n个数能表示出来的最大值
        for (int i = 1; i <= coins.size(); i++) { 
            if (coins[i - 1] > res[i - 1] + 1)
                res[i] = res[i - 1];
            else
                res[i] = res[i - 1] + coins[i - 1];
        }
        return res[coins.size()] + 1;
    }
};

标签:1798,int,res,coins,构造,数目,size
From: https://www.cnblogs.com/zwyyy456/p/17478103.html

相关文章

  • 2023.6.13 数组中不等三元组的数目
    直接的思路是三重循环\(O(n^3)\)解决,由于数据范围是\(n\leq100\),所以\(n^3\leq10^6\)可以过。如果想稍微优化一下的话,可以考虑下面两种思路,都是类似的:排序,排完序后相同的元素会聚集到一起,假设他们聚集在了区间\([i,j]\)内。那\([0,i-1]\)这一部分区间和\([j+1,n]\)......
  • 85 构造方法 空参和带参
    对象packagecom.fqs.demo061302;publicclassGirl{//属性//成员变量privateStringname;privateintage;/*publicvoidsetAge(intage){//【局部变量】名称可以和上面的【成员变量】一样//赋值if(age<50&&age>18){......
  • 14.拷贝构造函数、静态、友元和预编译头
    拷贝构造函数静态友元预编译头拷贝构造函数eg:Playeer.h代码:#pragmaonceclassPlayeer{private:intnum;char*name;public:Playeer(intx,constchar*name);~Playeer();voiddisplay();//输出结果voidsetX(intx);//......
  • 力扣---2475. 数组中不等三元组的数目
    给你一个下标从0开始的正整数数组nums。请你找出并统计满足下述条件的三元组(i,j,k)的数目:0<=i<j<k<nums.lengthnums[i]、nums[j]和nums[k]两两不同。换句话说:nums[i]!=nums[j]、nums[i]!=nums[k]且nums[j]!=nums[k]。返回满足上述条件三元组的数目......
  • leetCode1768.交替合并字符串 && [1679] K 和数对的最大数目
    题目:给你两个字符串word1和word2。请你从word1开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。返回合并后的字符串。      输入:word1="abc",word2="pqr"      输出:"apbqcr......
  • HDU 5491 The Next(构造)
    题意:给你D(D<=2^31),s1和s2,求比D大的第一个数并且这个数二进制1的数目在[s1,s2]范围里,输出这个数思路:直接从D+1算起,如果1的数目>s2那就跳过,如果s1>sum1,那么就将这个数的低位s1-sum1个0补成1,那么就是最优的了#include<bits/stdc++.h>usingnamespacestd;#defineLLlonglongint......
  • C ++ 拷贝构造函数和赋值构造函数 非常经典
    C++拷贝构造函数赋值构造函数拷贝构造函数和赋值构造函数的异同由于并非所有的对象都会使用拷贝构造函数和赋值函数,程序员可能对这两个函数有些轻视。请先记住以下的警告,在阅读正文时就会多心:如果不主动编写拷贝构造函数和赋值函数,编译器将以“位拷贝”的方式自动生成缺省的函数......
  • 构造和析构的bug
    目录构造析构构造析构父类一定要用virtual的析构函数dtorFa类的~Fa::Fa()没有加virtual,delete就不会调用子类的析构Fa*ptr=newSon,如果deleteptr,就执行的是父类的dtor,而不是子类的析构dtor......
  • JavaScript 构造器模式:创建可重用的对象
    前言JavaScript是一种基于对象的语言,对象是JavaScript中最重要的概念之一。在JavaScript中,我们可以使用构造器模式来创建可重用的对象。本文将介绍JavaScript构造器模式的概念、用法和实例,并给出博客标题《JavaScript构造器模式:创建可重用的对象》。构造器模式构造器模......
  • 1254. 统计封闭岛屿的数目
    1254.统计封闭岛屿的数目二维矩阵grid 由0 (土地)和1 (水)组成。岛是由最大的4个方向连通的0 组成的群,封闭岛是一个 完全由1包围(左、上、右、下)的岛。请返回封闭岛屿的数目。示例1:输入:grid=[[1,1,1,1,1,1,1,0],[1,0,0,0,0,1,1,0],[1,0,1,0,1,1,1,0],[1,0,0,0,0,1......