刷题工具h

C++常用的标准库函数

algorithm

#include<algorithm>


//第一个函数,获取容器的最大值和最小值,
max_element()
min_element()
//返回的是一个指针,如果返回值的话,需要*max_element 进行解引用
count(iter1,iter2,value)函数返回整型的数字用于计数
distance(iter1,iter2)
// 排序算法
sort(iter1,iter2,bool),0代表顺序排序,1反之
reverse(iter1,iter2)
for_each(cbegin(v),cend(v),[](const auto&x){cout<<x<<",";})
#include<bits/stdc++.h>//万能头文件
using namespace std;
int main(){
    
    
    vector<int> vec(5,6);
    vector<int> vec1{
    
    4,6,7,8,8};
    //返回的是对应的地址
    auto i = max_element(vec1.begin(),vec1.end());
    //输出最大值的第一个位置
    cout<<"最大值是:"<< distance(vec1.begin(),i);
    auto j = *min_element(vec1.begin(),vec1.end());
    int n = count(vec.begin(),vec.end(),6);

    string s = "aaabcdaaa!!!";
    int cnt= count(s.begin(),s.end(),'b');
    //最大值对应的地址是:
    //cout<<i<<endl;
    //最小值对应的数字是
    cout<<j<<endl;
    //输出对应的个数是
    cout<<n<<endl;
    //输出数组,装逼专用
    for_each(cbegin(vec1),cend(vec1),[](const auto&x){
    
    cout<<x<<",";});
    for_each(vec1.begin(),vec1.end(),[](const auto&x){
    
    cout<<x<<",";});
    cout<<"wpf!!!"<<endl;
    return 0;
    
}

面试题 17.16. 按摩师

class Solution {
    
    
public:
    int massage(vector<int>& nums) {
    
    
        vector<vector<int>> vec(nums.size(),vector<int>(2));
        if(nums.size() == 0) return 0;
        vec[0][0] = 0;
        vec[0][1] = nums[0];
        int max0 = nums[0];
        for(int i = 1;i<nums.size();i++){
    
    
            vec[i][0] = max(vec[i-1][0],vec[i-1][1]);
            vec[i][1] = vec[i-1][0]+nums[i];
            vector<int> T{
    
    vec[i][0],vec[i][1],max0};
            max0 = *max_element(cbegin(T),cend(T));
        }
        return max0;
    }
};

猜你喜欢

转载自blog.csdn.net/Android_WPF/article/details/126258789
今日推荐