zoukankan      html  css  js  c++  java
  • pat乙级1045

    从左到右扫描时记录扫描到当前下标为止的最大值,如果当前元素大于这个最大值,那么它就大于它左边的所有值。同理,从右到左扫描记录扫描到当前下标为止的最小值,如果当前元素小于这个最大小值,那么它就小于它右边的所有值。

    这样只需线性级别的时间。

    第一次提交一个测试点格式错误,后来查看柳婼的博客发现当主元数为0时需要输出空行,因为题目要求输出两行,因此最后加一空行。

     1 #include <iostream>
     2 #include <vector>
     3 #include <math.h>
     4 #include <algorithm>
     5 using namespace std;
     6 
     7 
     8 int main()
     9 {
    10     int n;
    11     cin >> n;
    12     vector<bool> v1(n), v2(n);
    13     vector<int> num(n);
    14     int max = -1;
    15     for (int i = 0; i < n; i++)
    16     {
    17         cin >> num[i];
    18         if (num[i] > max)
    19         {
    20             v1[i] = true;
    21             max = num[i];
    22         }
    23     }
    24     int min = pow(10, 9) + 1;
    25     for (int i = n - 1; i >= 0; i--)
    26     {
    27         if (num[i] < min)
    28         {
    29             v2[i] = true;
    30             min = num[i];
    31         }
    32     }
    33     vector<int> result;
    34     for (int i = 0; i < n; i++)
    35     {
    36         if (v1[i] && v2[i])
    37             result.push_back(num[i]);
    38     }
    39     cout << result.size() << endl;
    40     sort(result.begin(), result.end());
    41     for (int i = 0; i < result.size(); i++)
    42     {
    43         if (i) cout << " ";
    44         cout << result[i];
    45     }
    46     cout << endl;
    47     return 0;
    48 }
  • 相关阅读:
    c# 判断点在区域内,外
    数据库行转列的sql语句
    正则表达式 mac 地址 匹配
    js check (转)
    MessageBox 确认对话框
    获得 客户端信息(IP && Mac)
    根据 标识 自动编号
    行转列 demo
    dataset 中 datatable 关联查询
    ACM 进阶指南
  • 原文地址:https://www.cnblogs.com/lxc1910/p/8546069.html
Copyright © 2011-2022 走看看