202109-2 非零段划分

简介: 202109-2 非零段划分

8abb75d7fe184c0f942516dfb1cfb46b.png

c228595ca934437487310d8085c11b8a.png

96d53727a8f743ab8cada8d9494e51d1.png

70分代码:

#include <bits/stdc++.h> //70分 30分超时
using namespace std;
const int maxn = 500005;
int n, N;
int a[maxn];
int b[maxn];
int vis[maxn];
 
int main()
{
   cin >> n;
   for (int i = 1; i <= n; i++)
   {
      cin >> a[i];
   }
   int p = 0;
   int ans11 = 0;
   for (int i = 1; i <= n; i++)
   {
      int b[maxn] = {0};
      int ans = 0;
      if(vis[a[i]]==1) continue;
      p = a[i];
      vis[a[i]]=1;
      for (int j = 1; j <= n; j++)
      {
         if (a[j] < p)
         {
         }
         else
         {
            b[j] = a[j];
         }
      }
      for (int j = 1; j <= n; j++)
      {
         if (b[j] != 0 && b[j - 1] == 0)
         {
            ans++;
         }
      }
      if (ans > ans11)
      {
 
         ans11 = ans;
      }
   }
   cout << ans11;
}


100分代码:

#include <bits/stdc++.h> //100分
using namespace std;
const int maxn = 500005;
int n;
int a[maxn];
int cnt[maxn];
 
int main() // 类似岛屿问题优化  后缀和
{
   cin >> n;
   int max1 = 0;
   for (int i = 1; i <= n; i++)
   {
      cin >> a[i];
      max1 = max(max1, a[i]);
   }
   a[0] = 0;
   a[n + 1] = 0;                 // 边界默认为0
   n = unique(a, a + n + 2) - a; // a[0]到a[n+1]都要unique
   // 要-a  此时不存在相邻处相同的情况
   // unique很重要,这里只需考虑相邻元素不同的情况
   for (int i = 1; i < n; i++)
   {
      if (a[i - 1] < a[i] && a[i] > a[i + 1])
      { // 凸峰
         cnt[a[i]]++;
      }
      else if (a[i - 1] > a[i] && a[i] < a[i + 1])
      { // 凹谷
         cnt[a[i]]--;
      }
   }
   int res = 0, sum = 0;
   for (int i = max1 + 100; i >= 1; i--)
   {
      sum += cnt[i];
      res = max(res, sum);
   }
   cout << res;
}


6094c5f0064143738c2653177bd404a5.png

相关文章
|
存储 算法 安全
什么是SHA-256值
【8月更文挑战第24天】什么是SHA-256值
1215 1
|
人工智能 编译器 Go
go slice 基本用法
go slice 基本用法
142 1
|
机器学习/深度学习 人工智能 边缘计算
人工智能(AI)和机器学习(ML)
人工智能(AI)和机器学习(ML)
195 0
|
存储 程序员 编译器
C/C++程序内存区域划分以及各区域的介绍
C/C++程序内存区域划分以及各区域的介绍
|
算法 搜索推荐 测试技术
冒泡排序:理解、实现与性能优化
冒泡排序:理解、实现与性能优化
334 0
|
机器学习/深度学习 传感器 算法
智慧交通day03-车道线检测实现02-2:张氏标定法+双目标定
该方法介于传统标定法和自标定法之间,既克服了传统标定法需要的高精度三维标定物的缺点,又解决了自标定法鲁棒性差的难题。标定过程不需要特殊的标定物,只需使用一张打印出来的棋盘格,并从不同方向拍摄几组图片即可,不仅实用灵活方便,而且精度很高,鲁棒性好。因此很快被全世界广泛采用,极大的促进了三维计算机视觉从实验室走向真实世界的进程。
726 0
|
Shell 网络安全 数据安全/隐私保护
iterm2 安装、配置、ssh远程
iterm2 安装、配置、ssh远程,持续更新。
3534 0
|
存储 C语言
歌曲信息管理系统[低配版]
歌曲信息管理系统[低配版]
|
网络安全 开发工具 git
Git学习(一)(下)
Git学习(一)(下)
233 0
Git学习(一)(下)
|
存储 SQL 弹性计算
行业先锋畅聊 Flink 未来 —— FFA 2021 圆桌会议(北京)
Flink Forward Asia 2021 圆桌会议 (北京) 内容整理
行业先锋畅聊 Flink 未来 —— FFA 2021 圆桌会议(北京)