当前位置: 首页 > article >正文

【CSP:202109-2】非零段划分(Java)

题目链接

  • 202109-2 非零段划分

题目描述

描述
1
2
3
4

求解思路

  • 差分:根据本题给出的数据量: a [ ] a[] a[] 数组中的每一个数均不超过 1 0 4 10^4 104,所以开辟大小为1e4+10的差分数组。
  • a数组开辟的大小为n+1a[0]的默认值为0。
  • if (a[i] > a[i - 1]):如果后一个数比前一个大,那么当p取到它们中间的值时,就会把前边的数变成零,从而增加一个非零段;而当pa[i]大的时候,这两个数字就都会变成0,没有了非零段。
  • 每次遍历的就sum相当于当pi时存在的非零段数目,ans记录其最大值。

实现代码

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] a = new int[n + 1];
        int[] b = new int[(int) 1e4+10];
        int ans = 0, sum = 0;
        for (int i = 1; i <= n; i++) {
            a[i] = in.nextInt();
            if (a[i] > a[i - 1]) {
                b[a[i - 1]] ++;
                b[a[i]] --;
            }
        }
        for (int i = 0; i < 1e4+10; i++) {
            sum += b[i];
            ans = Math.max(ans, sum);
        }
        System.out.println(ans);
    }
}

http://www.kler.cn/a/283005.html

相关文章:

  • 简易入手《SOM神经网络》的本质与原理
  • RabbitMQ高效的消息队列中间件原理及实践
  • 【计算机网络】【传输层】【习题】
  • Java面向对象高级2
  • 【计算机网络】UDP网络程序
  • MybatisPlus入门(十)MybatisPlus-逻辑删除和多记录操作
  • 4.sklearn-K近邻算法、模型选择与调优
  • MySQL集群技术1——编译部署mysql
  • “重启就能解决一切问题”,iPhone重启方法大揭秘
  • 解决:无法从域控制器读取配置信息
  • 2024.8.29 C++
  • C#面:ASP.NET MVC 中还有哪些注释属性用来验证?
  • RKNPU2从入门到实践 ---- 【8】借助 RKNN Toolkit lite2 在RK3588开发板上部署RKNN模型
  • 设计模式--装饰器模式
  • 理解torch.argmax() ,我是错误的
  • 融资和融券分别是什么意思,融资融券开通后能融到多少资金?
  • Datawhale X 李宏毅苹果书 AI夏令营_深度学习基础学习心得Task2.2
  • Java 入门指南:Java NIO —— Selector(选择器)
  • 【hot100篇-python刷题记录】【搜索二维矩阵】
  • 分布式锁的实现:ZooKeeper 的解决方案
  • hive数据迁移
  • 低代码革命:JNPF平台如何简化企业应用开发
  • Linux 中的中断响应机制
  • TCP keepalive和HTTP keepalive区别
  • SCP拷贝失败解决办法
  • 基于单片机的指纹识别考勤系统设计