【Java每日一题,容器+思维】csp202012-2 期末预测之最佳阈值

简介: 【Java每日一题,容器+思维】csp202012-2 期末预测之最佳阈值

Introduction

Input

Output

输出到标准输出。

输出一个整数,表示最佳阈值 θ*。

Sample

input

6
0 0
1 0
1 1
3 1
5 1
7 1

output

3

input

8
5 1
5 0
5 0
2 1
3 0
4 0
100000000 1
1 0

output

100000000

Solution

import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
public class Main20201202 {
    public static void main(String[] args) {
        Scanner s=new Scanner(System.in);
        int m=s.nextInt();
        TreeMap<Integer,Integer> treeMap=new TreeMap();
        int count=0;
        int temp=0;
        int max;
        for(int i=0;i<m;i++){
            int y=s.nextInt();
            int result=s.nextInt();
            if(result==1){
                count++;
                temp=1;
            }else {
                temp=-1;
            }
            if(!treeMap.containsKey(y)){
                treeMap.put(y,temp);
            }else {
                treeMap.replace(y,treeMap.get(y)+temp);
            }
        }
        int num=treeMap.firstKey();
        max=count;
        int len=treeMap.size()-1;
        for(int i=0;i<len;i++){
            Map.Entry<Integer, Integer> integerIntegerEntry = treeMap.pollFirstEntry();
            count+=-integerIntegerEntry.getValue();
            if(count>=max){
                max=count;
                num=treeMap.firstKey();
            }
        }
        System.out.println(num);
    }
}

Experience

终于搞对一回了,csp第2题就是要多动脑想一想方法,不能靠暴力,而是要保证O(n)的线性解题技巧就一定不会错



相关文章
|
5天前
|
安全 Java 容器
Java一分钟之-并发编程:并发容器(ConcurrentHashMap, CopyOnWriteArrayList)
【5月更文挑战第18天】本文探讨了Java并发编程中的`ConcurrentHashMap`和`CopyOnWriteArrayList`,两者为多线程数据共享提供高效、线程安全的解决方案。`ConcurrentHashMap`采用分段锁策略,而`CopyOnWriteArrayList`适合读多写少的场景。注意,`ConcurrentHashMap`的`forEach`需避免手动同步,且并发修改时可能导致`ConcurrentModificationException`。`CopyOnWriteArrayList`在写操作时会复制数组。理解和正确使用这些特性是优化并发性能的关键。
11 1
|
8天前
|
Kubernetes 网络协议 Java
容器服务Kubernetes版产品使用合集之遇到报错"java.lang.NoClassDefFoundError"如何解决
容器服务Kubernetes版,作为阿里云提供的核心服务之一,旨在帮助企业及开发者高效管理和运行Kubernetes集群,实现应用的容器化与微服务化。以下是关于使用这些服务的一些建议和合集,涵盖基本操作、最佳实践、以及一些高级功能的使用方法。
23 2
|
8天前
|
存储 安全 Java
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
|
8天前
|
Kubernetes Java 调度
Java容器技术:Docker与Kubernetes
Java容器技术:Docker与Kubernetes
54 0
|
8天前
|
存储 Java 索引
【亮剑】Java中的并发容器ConcurrentHashMap,它在JDK1.5中引入,用于替换HashTable和SynchronizedMap
【4月更文挑战第30天】本文介绍了Java中的并发容器ConcurrentHashMap,它在JDK1.5中引入,用于替换HashTable和SynchronizedMap。文章展示了创建、添加、获取、删除和遍历元素的基本用法。ConcurrentHashMap的内部实现基于分段锁,每个段是一个独立的Hash表,通过分段锁实现并发控制。每个段内部采用数组+链表/红黑树的数据结构,当冲突过多时转为红黑树优化查询。此外,它有扩容机制,当元素超过阈值时,会逐段扩容并翻倍Segment数量,以保持高性能的并发访问。
|
8天前
|
存储 Java 开发工具
【Java探索之旅】用面向对象的思维构建程序世界
【Java探索之旅】用面向对象的思维构建程序世界
12 0
|
8天前
|
存储 算法 Java
盘点Java集合(容器)概览,Collection和Map在开发中谁用的最多?
盘点Java集合(容器)概览,Collection和Map在开发中谁用的最多?
31 0
|
8天前
|
存储 Java 测试技术
滚雪球学Java(16):玩转JavaSE-do-while循环语句:打破传统思维模式
【4月更文挑战第5天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
39 7
滚雪球学Java(16):玩转JavaSE-do-while循环语句:打破传统思维模式
|
8天前
|
存储 安全 Java
Java中的容器,线程安全和线程不安全
Java中的容器,线程安全和线程不安全
20 1
|
8天前
|
存储 Java 开发者
使用Docker容器化Java后台应用
【4月更文挑战第16天】本文介绍了如何使用Docker容器化Java后台应用。Docker作为开源应用容器引擎,提供一致运行环境,简化部署,增强可移植性。文章详细阐述了Docker的优势,包括环境一致性、隔离性、可移植性和资源效率。步骤包括安装Docker、创建Dockerfile、构建镜像、运行容器及管理容器。进阶部分涉及多阶段构建、数据持久化和网络配置,强调了Docker对现代Java开发的重要性。

热门文章

最新文章