编程挑战中的许多问题都需要在给定元素中找到最大和最小的地方。在本文中,我们讨论两种方法:一种是将max初始化为第一个元素,然后将向量从索引1遍历到size-1,然后将每个遍历的元素与max进行比较,如果它大于max,则更新max等于到元素。为了找到最小的元素,我们执行相同的步骤,即将min初始化为第一个元素,并且对于每个遍历的元素,将其与min进行比较(如果小于min,则更新min)。
另一种方法是分别使用库函数std :: max_element和std :: min_element查找最大和最小。这些方法在<algorithm>标头中定义。两种方法的时间复杂度都是线性的,即ta(n)。
示例1:该示例显示了我们上面讨论的第一种方法的工作...
#include <bits/stdc++.h>
using namespace std;
//寻找最大
int Findlarge(vector<int> myVector)
{
//初始化最大元素
int max = myVector[0];
//遍历矢量元素
for (int i = 1; i < myVector.size(); i++)
if (myVector[i] > max)
max = myVector[i];
return max;
}
//寻找最小值
int FindMin(vector<int> myVector)
{
//初始化最小元素
int min = myVector[0];
//遍历矢量元素
for (int i = 1; i < myVector.size(); i++)
if (myVector[i] < min)
min = myVector[i];
return min;
}
//主要功能
int main() {
vector<int> myVector;
myVector.push_back(1);
myVector.push_back(100);
myVector.push_back(76);
myVector.push_back(9);
cout<<endl<<endl<<endl<<endl;
cout<<"elements in Vector = ";
for(int i=0;i<myVector.size();i++)
{
cout<<myVector[i]<<" ";
}
cout<<endl;
cout << "Largest element given vector is = " << Findlarge(myVector)<<endl;
cout << "smallest element given vector is = " << FindMin(myVector)<<endl;
return 0;
}输出结果
elements in Vector = 1 100 76 9 Largest element given vector is = 100 smallest element given vector is = 1