zoukankan      html  css  js  c++  java
  • 23救生艇(881)

    作者: Turbo时间限制: 1S章节: 贪心

    晚于: 2020-07-22 12:00:00后提交分数乘系数50%

    截止日期: 2020-07-29 12:00:00

    问题描述 :

    第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit。

    每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。

    返回载到每一个人所需的最小船数。(保证每个人都能被船载)。

    示例 1:

    输入:people = [1,2], limit = 3

    输出:1

    解释:1 艘船载 (1, 2)

    示例 2:

    输入:people = [3,2,2,1], limit = 3

    输出:3

    解释:3 艘船分别载 (1, 2), (2) 和 (3)

    示例 3:

    输入:people = [3,5,3,4], limit = 5

    输出:4

    解释:4 艘船分别载 (3), (3), (4), (5)

    输入说明 :

    首先输入人的数量n,然后输入n个整数,表示人的体重。

    最后输入limit。

    1 <= n <= 50000

    1 <= 人的体重 <= limit <= 30000

    输出说明 :

    输出一个整数

    输入范例 :

    输出范例 :

    #include <iostream>
    #include <vector>
    #include <algorithm>
    using namespace std;
    
    class Solution {
    public:
        int numRescueBoats(vector<int>& people, int limit) 
        {
            sort(people.begin(), people.end());
            int i=0;
            int j=people.size()-1,res=0;
            while(i<=j)
            {
                res++; 
                if(people[i]+people[j]<=limit)
                    i++;
                j--;
            }
            return res;
        }
    };
    
    int main()
    {
        int n,data,limit,res;
        vector<int> people;
        cin>>n;
        for(int i=0; i<n; i++)
        {
            cin>>data;
            people.push_back(data);
        }
        cin>>limit;
        res=Solution().numRescueBoats(people,limit);
        cout<<res;
    
        return 0;
    }
  • 相关阅读:
    多重背包
    摘花生
    完全背包问题
    01背包问题
    数字金字塔
    ES6 Object.assign()的用法
    umi---className设置多个样式
    npm 安装yarn
    html引入其他html的几种方式
    react打包去掉map文件
  • 原文地址:https://www.cnblogs.com/zmmm/p/13622206.html
Copyright © 2011-2022 走看看