64,199
社区成员
发帖
与我相关
我的任务
分享目录
class Solution {
public:
int maxProductDifference(vector<int>& nums) {
sort(nums.begin(),nums.end());
int sz =nums.size();
return nums[sz-1]*nums[sz-2]-nums[0]*nums[1];
}
};
class Solution {
public:
int largestPerimeter(vector<int>& nums) {
sort(nums.begin(),nums.end());
for(int i=nums.size()-1;i>=2;i--){
if(nums[i-1]+nums[i-2]>nums[i]){
return nums[i-1]+nums[i-2]+nums[i];
}
}
return 0;
}
};
class Solution {
public:
int arrayPairSum(vector<int>& nums) {
sort(nums.begin(),nums.end());
int sz=nums.size();
int minsum=0;
for(int i=0;i<sz;i+=2)
{
minsum+=nums[i];
}
return minsum;
}
};
class Solution {
public:
int numRescueBoats(vector<int>& people, int limit) {
int sz =people.size();
sort(people.begin(),people.end());
auto l=0;
auto r=sz-1;
int amount=0;
while(l<=r)
{
if(l==r)
{
amount++;
break;
}
else if(people[l]+people[r]>limit)
{
amount++;
r--;
}
else
{
amount++;
l++; r--;
}
}
return amount;
}
};
class Solution {
public:
void wiggleSort(vector<int>& nums) {
int sz=nums.size();
int r=sz-1;
sort(nums.begin(),nums.end());
vector<int> ans=nums;
for(int i=1;i<sz;i+=2)
{
nums[i]=ans[r--];
}
for(int i=0;i<sz;i+=2)
{
nums[i]=ans[r--];
}
}
};
n/2 < n > n/2+1 < n-1 > .........n/2-1 >0
class Solution {
public:
int findContentChildren(vector<int>& g, vector<int>& s) {
int g_sz=g.size(); int s_sz=s.size();
int ans=0;
int i=g_sz-1, j=s_sz-1;
sort(g.begin(),g.end());
sort(s.begin(),s.end());
while(i>=0&&j>=0)
{
if(s[j]>=g[i])
{
++ans;
--i, --j;
}
else
{
--i;
}
}
return ans;
}
};
class Solution {
public:
int minOperations(vector<int>& nums) {
int sz=nums.size();
int ans=0;
for(int i=1;i<sz;++i)
{
if(nums[i]<=nums[i-1])
{
ans+= nums[i-1]-nums[i]+1;
nums[i]=nums[i-1]+1;
}
}
return ans;
}
};
类似上一题,不过要先排序
class Solution {
public:
int minIncrementForUnique(vector<int>& nums) {
int sz=nums.size();
sort(nums.begin(),nums.end());
int ans=0;
for(int i=1;i<sz;++i)
{
if(nums[i]<=nums[i-1])
{
ans+= nums[i-1]-nums[i]+1;
nums[i]=nums[i-1]+1;
}
}
return ans;
}
};