Stack

定义

C++:stack

Java:Stack(线程安全)

创建与其基本操作

创建:

Stack stack=new Stack

数组:

Stack stack[]=new Stack[N]

基本操作:

1boolean empty() 测试堆栈是否为空。

2Object peek( ) 查看堆栈顶部的对象,但不移除。

3Object pop( ) 移除堆栈顶部的对象,并返回该对象。

4Object push(Object element)

5int search(Object element) 返回对象在堆栈中的位置,以 1 为基数。

import java.util.*;

import java.io.*;

public class Main {

static final int N=(int)1e5+5;

public static void main(String args[]){

Stack stack=new Stack();

int a[]= new int[N];

int b[]= new int[N];

Scanner sc=new Scanner(new InputStreamReader(System.in));

while(sc.hasNext()) {

while(!stack.empty()) stack.pop();

int n=sc.nextInt();

if(n==0) break;

for(int i=0;i

for(int i=0;i

while(!stack.empty()&&a[stack.peek()]>=a[i]) {

stack.pop();

}

if(stack.empty()) b[i]=-1;

else b[i]=stack.peek();

stack.push(i);

}

while(!stack.empty()) stack.pop();

long ans=0;

for(int i=n-1;i>=0;i--) {

while(!stack.empty()&&a[stack.peek()]>=a[i]) {

stack.pop();

}

if(stack.empty()) {

ans=Math.max(ans, (long)a[i]*(n-b[i]-1));

}

else ans=Math.max(ans, (long)a[i]*(stack.peek()-b[i]-1));

stack.push(i);

}

PrintWriter out=new PrintWriter(new OutputStreamWriter(System.out));

out.println(ans);out.flush();

}

}

}

java集合 stack_Java集合之Stack相关推荐

  1. 【Java 集合】Java 集合的线程安全性 ( 加锁同步 | java.utils 集合 | 集合属性 | java.util.concurrent 集合 | CopyOnWrite 机制 )

    文章目录 I . Java 集合的线程安全概念 ( 加锁同步 ) II . 线程不安全集合 ( 没有并发需求 推荐使用 ) III . 集合属性说明 IV . 早期的线程安全集合 ( 不推荐使用 ) ...

  2. Thinking in java基础之集合框架

    Thinking in java基础之集合框架 大家都知道我的习惯,先上图说话. 集合简介(容器) 把具有相同性质的一类东西,汇聚成一个整体,就可以称为集合,例如这里有20个苹果,我们把每一个苹果当成 ...

  3. Java面试题集合(比较实用)

    1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector.Stack.HashTable和Array.随着集合的广泛使用...... ...

  4. 万字长文深入理解java中的集合-附PDF下载

    文章目录 1. 前言 2. List 2.1 fail-safe fail-fast知多少 2.1.1 Fail-fast Iterator 2.1.2 Fail-fast 的原理 2.1.3 Fai ...

  5. (转)java中对集合对象list的几种循环访问总结

    Java集合的Stack.Queue.Map的遍历 在集合操作中,常常离不开对集合的遍历,对集合遍历一般来说一个foreach就搞定了,但是,对于Stack.Queue.Map类型的遍历,还是有一些讲 ...

  6. java队列_java集合入门和深入学习(详解),看这篇就差不多了

    一.集合入门总结 集合框架: Java中的集合框架大类可分为Collection和Map:两者的区别: 1.Collection是单列集合:Map是双列集合 2.Collection中只有Set系列要 ...

  7. java数组、集合和数据结构知识*

    为什么80%的码农都做不了架构师?>>>    一.数据结构知识.数据结构分为逻辑结构和物理结构,下面是百度百科的数据结构知识. 数据的逻辑结构:指反映数据元素之间的逻辑关系的数据结 ...

  8. java把map值放入vector_Thinking in java基础之集合框架

    Thinking in java基础之集合框架 大家都知道我的习惯,先上图说话. 集合简介(容器) 把具有相同性质的一类东西,汇聚成一个整体,就可以称为集合,例如这里有20个苹果,我们把每一个苹果当成 ...

  9. java中各种集合的用法和比较

    一,java中各种集合的关系图 Collection       接口的接口     对象的集合  ├ List           子接口         按进入先后有序保存   可重复  │├ L ...

最新文章

  1. 6 Springboot 整合Redis
  2. 白雪 | NLP加持知识图谱在金融事件挖掘中的应用
  3. go基本数据类型与运算符
  4. qmail 反垃圾邮件
  5. [Ubuntu18.04]美化
  6. 用Lucene[1].net对数据库建立索引及搜索+
  7. 接地气的大数据来了:如何预报雾霾
  8. 0906--学成在线页面案例
  9. 多功能Win系统维护工具箱
  10. 屏幕录像专家使用手册
  11. Excel怎么把横向的数据变成纵向排列?
  12. http://www.cnblogs.com/longteng1991/archive/2013/06/13/3131739.html#
  13. 深度技术 Windows7 旗舰五周年纪念版
  14. 土方计算过程(方格网法)
  15. 7zip打不开wim文件
  16. Android-工作遭遇-URLConnection原生请求http和https忽略证书
  17. 实验吧 Guess Next Session
  18. 你若运行,便是晴天!
  19. Android音视频全面介绍与代码实践之音效(四)
  20. jquery slideToggle() 效果

热门文章

  1. 使用pickle保存机器学习模型详解及实战(pickle、joblib)
  2. 生存分析-从survdiff函数中提取P值
  3. 基于多源信息的深度卷积神经网络预测CircRNA疾病关联的有效方法
  4. 在神经网络中使用dropout
  5. python xgb模型 预测_Python 调用 PMML
  6. tf.keras.layers.Dropout 示例
  7. opencv函数总结
  8. linux攻击端口,Linux 常见攻击端口封杀表
  9. python unit test 访问开发代码,使用Python的unittest模块作为testrunner时,如何在测试前运行初始化代码?...
  10. 粒子群(pso)算法详解matlab代码,粒子群(pso)算法详解matlab代码