目录题目来源于知识星球—英雄算法联盟,五月算法集训专题
- 前言
- 第一题 2016.增量元素之间的最大差值(简单)
- 1.题目描述
- 2.解题思路
- 3.代码演示(C++)
- 4.题目链接
- 第二题 2239.找到最接近0的数字(简单)
- 1.题目描述
- 2.解题思路
- 3.代码演示(C++)
- 4.题目链接
- 第三题 1475.商品折扣后的最终价格(简单)
- 1.题目描述
- 2.解题思路
- 3.代码演示(C++)
- 4.题目链接
- 第四题 2248.多个数组求交集(简单)
- 1.题目描述
- 2.解题思路
- 3.代码演示(C++)
- 4.题目链接
- 总结
跟随英雄算法联盟博主—英雄哪里出来,每天完成相应的算法练习,一个月后,必定会有所成长!
第一题 2016.增量元素之间的最大差值(简单) 1.题目描述 2.解题思路
使用两层for循环,第一层遍历数组,从下标0开始遍历到最后一个元素;第二层 循环从第一层循环变量的下一个位置开始遍历,反复求差值,最终返回最大差值。3.代码演示(C++)
class Solution
{
public:
int maximumDifference(vector& nums)
{
int sum=-1;
for(int i=0;i
for(int j=i+1;j
if(nums[j]>nums[i])
{
sum=max(sum,nums[j]-nums[i]);
}
}
}
return sum;
}
};
4.题目链接
题目传送门
第二题 2239.找到最接近0的数字(简单) 1.题目描述 2.解题思路
先找到绝对值最小的数字(即最接近0的数字),如果存在绝对值相同的情况, 则返回原值较大的数字。3.代码演示(C++)
class Solution
{
public:
int findClosestNumber(vector& nums)
{
int ans=nums[0];
for(int i=1;i
if(abs(nums[i])
ans=nums[i];//求出绝对值接近0的数字
}
else if(abs(nums[i])==abs(ans))//如果绝对值相等,求出原值较大的
{
if(nums[i]>ans)
{
ans=nums[i];
}
}
}
return ans;
}
};
4.题目链接
题目传送门
第三题 1475.商品折扣后的最终价格(简单) 1.题目描述 2.解题思路
首先定义一个vector类型的数组a来作为最后的结果数组,prices数组中的最后 一个元素肯定是没有折扣的,因此数组a的最后一个元素值即为数组prices的最 后一个元素值,然后用for循环进行遍历,如果当前位置的下一个位置的元素值 比当前位置元素值小,则数组a的结果为而个元素值的差值,反之,数组a的结果 为数组prices中当前位置的元素值。3.代码演示(C++)
class Solution
{
public:
vector finalPrices(vector& prices)
{
vectora(prices.size());
a[prices.size()-1]=prices[prices.size()-1];
for(int i=0;i
for(int j=i+1;j
if(prices[j]<=prices[i])
{
a[i]=prices[i]-prices[j];
break;
}
else
{
a[i]=prices[i];
}
}
}
return a;
}
};
4.题目链接
题目传送门
第四题 2248.多个数组求交集(简单) 1.题目描述 2.解题思路
题目让求的是多个数组的交集,因此交集元素在每个数组中都出现,那么先用一 个数组来存储每个数字出现的次数,当数字出现的次数等于原数组个数时,即为 交集元素,最后对交集元素升序排列即可。3.代码演示(C++)
class Solution
{
public:
vector intersection(vector>& nums)
{
int n=nums.size();//记录共有几个数组
vectora;
unordered_mapch;//记录每个数字出现的次数
for(int i=0;i
for(int j=0;j
ch[nums[i][j]]++;//记录每个数字出现的次数
if(ch[nums[i][j]]==n)//题中所说每个数组重元素都不同,数字出现次数=元素个数即为交集
{
a.push_back(nums[i][j]);//符合题意的数字存入a数组中
}
}
}
sort(a.begin(),a.end());
return a;
}
};
4.题目链接
题目传送门
总结
每天跟随英雄哥学习相关的算法,一个月会收获很多,如果你想了解更多关于知识星球的内容,欢迎联系我!



