编程挑战中的许多问题都需要在给定元素中找到最大和最小的地方。在本文中,我们讨论两种方法:一种是将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