九日集训第六天

目录

两个数对之间最大的乘积差

三角形的最大周长

数组拆分

救生艇

摆动排序||

分发饼干

最少操作使数组递增

使数组唯一的最小增量

有效三角形的个数


两个数对之间最大的乘积差

cpp 复制代码
class Solution {
public:
    int maxProductDifference(vector<int>& nums) {
        sort(nums.begin(),nums.end());
        return nums[nums.size()-1]*nums[nums.size()-2]-nums[0]*nums[1];
    }
};

三角形的最大周长

cpp 复制代码
class Solution {
public:
    int largestPerimeter(vector<int>& nums) {
        sort(nums.begin(),nums.end());
        int n=nums.size();
        for(int i=n-1;i>=2;i--){
            if(nums[i-2]+nums[i-1]>nums[i])return nums[i-2]+nums[i-1]+nums[i];
        }
        return 0;
    }
};

数组拆分

cpp 复制代码
class Solution {
public:
    int arrayPairSum(vector<int>& nums) {
        int res=0;
        sort(nums.begin(),nums.end());
        for(int i=0;i<nums.size();i+=2){
            res+=nums[i];
        }
        return res;
    }
};

救生艇

cpp 复制代码
class Solution {
public:
    int numRescueBoats(vector<int>& people, int limit) {
        int res=0;
        sort(people.begin(),people.end());
        int left=0;
        int right=people.size()-1;
        while(left<=right){
            if(people[left]+people[right]<=limit){
                res++;
                left++;
                right--;
            }
            else {
                res++;
                right--;
            }
        }
        return res;
    }
};

摆动排序||

cpp 复制代码
class Solution {
public:
    void wiggleSort(vector<int>& nums) {
        sort(nums.begin(),nums.end());
        int left=(nums.size()-1)/2;
        int right=nums.size()-1;
        vector<int> s(nums.size());
        for(int i=0;i<nums.size();i++){
            if(i%2==0){
                s[i]=nums[left--];
            }
            else {
                s[i]=nums[right--];
            }
        }
        for(int i=0;i<nums.size();i++){
            nums[i]=s[i];
        }
    }
};

分发饼干

cpp 复制代码
class Solution {
public:
    int findContentChildren(vector<int>& g, vector<int>& s) {
        sort(g.begin(),g.end());
        sort(s.begin(),s.end());
        int res=0;
        int pg=0;
        int ps=0;
        while(ps<s.size()&&pg<g.size()){
            if(s[ps]>=g[pg]){
                res++;
                pg++;
                ps++;
            }
            else {
                ps++;
            }
        }
        return res;
    }
};

最少操作使数组递增

cpp 复制代码
class Solution {
public:
    int minOperations(vector<int>& nums) {
        if(nums.size()==1)return 0;
        int res=0;
        for(int i=1;i<nums.size();i++){
            if(nums[i]<=nums[i-1]){
                res+=nums[i-1]-nums[i]+1;
                nums[i]=nums[i-1]+1;
            }
        }
        return res;
    }
};

使数组唯一的最小增量

cpp 复制代码
class Solution {
public:
    int minIncrementForUnique(vector<int>& nums) {
        if (nums.size() == 1)
            return 0;
        sort(nums.begin(), nums.end());
        int res = 0;
        for (int i = 1; i < nums.size(); i++) {
            if (nums[i] <= nums[i - 1]) {
                res += abs(nums[i] - nums[i - 1] )+ 1;
                nums[i] = nums[i - 1] + 1;
            }
        }
        return res;
    }
};

有效三角形的个数

cpp 复制代码
class Solution {
public:
    int triangleNumber(vector<int>& nums) {
        if(nums.size()<=2)return 0;
        int res=0;
        sort(nums.begin(),nums.end());
        for(int i=0;i<nums.size();i++){
            for(int j=i+1;j<nums.size();j++){
                for(int k=j+1;k<nums.size();k++){
                    if(nums[i]+nums[j]>nums[k]){
                        res++;
                    }
                }
            }
        }
        return res;
    }
};
相关推荐
BK贝壳3 小时前
bool-hybrid-array 落盘我只认 .bha:用 Create_BHA / Ask_BHA 做布尔数组序列化
数据结构·python·numpy·1024程序员节
企业数字化笔记5 小时前
视频人体姿态怎么做三维可视化?2D关键点、深度局限与技术选型
人工智能·算法·音视频
?abc!6 小时前
(数组)581. 最短无序连续子数组
数据结构·算法·leetcode
小郎君6589 小时前
MPTT树复选框的半选状态:一棵百万节点树从递归到计数器,再到区间覆盖
算法
酌沧9 小时前
MemT让记忆成为模型内生能力
jvm·人工智能·算法
hold?fish:palm9 小时前
40 二叉树的直径
c++·leetcode
Shimeri9 小时前
越卷越像:我用遗传算法做了个"内卷"实验
算法·three.js·数据可视化·遗传算法·进化算法
Evand J10 小时前
【PMSM例程1】永磁同步电机(PMSM)转速与转子电角度观测算法|基于扩展卡尔曼滤波(EKF)的传感器状态估计与误差。附下载链接
算法·电机·1024程序员节·卡尔曼滤波
guo_wen_qiang10 小时前
二叉树的层序遍历-使用双端队列Deque
算法·leetcode·1024程序员节
爱读书的小胖10 小时前
LeetCode 55 跳跃游戏 C 语言解题分析
c语言·数据结构·算法·leetcode·1024程序员节