欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > 九日集训第六天

九日集训第六天

2025/6/20 12:49:46 来源:https://blog.csdn.net/2401_88089822/article/details/148723296  浏览:    关键词:九日集训第六天

目录

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

三角形的最大周长

数组拆分

救生艇

摆动排序||

分发饼干

最少操作使数组递增

使数组唯一的最小增量

有效三角形的个数


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

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];}
};

三角形的最大周长

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;}
};

数组拆分

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;}
};

救生艇

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;}
};

摆动排序||

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];}}
};

分发饼干

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;}
};

最少操作使数组递增

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;}
};

使数组唯一的最小增量

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;}
};

有效三角形的个数

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;}
};

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词