首页 > 编程语言 >Java学习-1

Java学习-1

时间:2023-08-01 15:11:22浏览次数:33  
标签:head Java min int 学习 ListNode public empty

今天学了点Java构建最小栈的方法,采用的是链表存储其中的最小值以及当前节点的数值,在插入栈内新元素的时候进行对应的最小值比对,插入到private链表中。

class ListNode{
    public int val;
    public int min;
    public ListNode next;

    public ListNode(int val,int min,ListNode next){
        this.val=val;
        this.min=min;
        this.next=next;
    }
}

class MinStack {
    private ListNode head;
    public MinStack() {

    }
    private boolean empty(){
        return head==null;
    }
    
    public void push(int x) {
        if(empty()){
            head=new ListNode(x,x,null);
        }
        else{
            head=new ListNode(x,Math.min(head.min,x),head);
        }
    }
    
    public void pop() {
        if(empty()){
            throw new IllegalStateException("stack is empty!");
        }
        head=head.next;
    }
    
    public int top() {
        if(empty()){
            throw new IllegalStateException("stack is empty!");
        }
        return head.val;
    }
    
    public int getMin() {
        if(empty()){
            throw new IllegalStateException("stack is empty!");
        }
        return head.min;
    }
}

标签:head,Java,min,int,学习,ListNode,public,empty
From: https://www.cnblogs.com/D876887913/p/17596571.html

相关文章

  • #yyds干货盘点#Java虚拟机基本结构
    类加载子系统类加载子系统负责从文件系统或网络中加载Class信息,加载的类的数据结构存放于一块叫方法区的内存空间中。方法区方法区主要存储类加载后的数据结构信息、运行时常量池信息、字符串、数字常量(这部分常量信息是Class文件中常量池部分的内存映射)(JDK1.7之前,JDK1.7之后字符......
  • spring boot学习(7)— 自定义中的 HttpMessageConverter
    在我们开发自己的应用时,有时候,我们可能需要自定义一些自己的数据格式来传输,这时,自定义的数据传输和类的实例之间进行转化就需要统一起来了, SpringMVC 中的 HttpMessageConverter 就派上用场了。HttpMessageConverter 的声明:publicinterfaceHttpMessageConverter<T>{......
  • git学习笔记(十二):标签管理
    打标签,方便找。tag就是一个让人容易记住的有意义的名字,跟某个commit捆绑在一起。(就是一个指向commit的指针,原来的哈希表值太复杂了,不方便沟通,所以给了一种定制的简化版。)打标签切换到需要打标签的分支上,然后使用命令$gittagv1.0可以使用gittag查看所有标签。默认的标......
  • 视频直播网站源码,前端效果-css+javascript
    视频直播网站源码,前端效果-css+javascript <!DOCTYPEhtml><html><head>  <metacharset="UTF-8">  <metahttp-equiv="X-UA-Compatible"content="IE=edge">  <metaname="viewport"content="w......
  • Java集合框架
    Java集合框架集合框架用于存储数据的容器,集合框架是为表示和操作集合而规定的一种统一的标准的体系结构任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法接口表示集合的抽象数据类型。接口允许我们操作集合时不必关注具体实现,从而达到“多态......
  • java两个list对象取差集
    在Java开发中,我们经常会遇到需要对两个List对象进行比较并取得它们的差集的情况。差集是指在第一个List中出现而在第二个List中没有出现的元素集合。本文将介绍如何使用Java来实现这个功能,并提供代码示例。方法一:使用循环嵌套遍历比较一种常见的方法是通过嵌套循环遍历比较两个Li......
  • 零基础应该如何学习计算机编程?
    一、编程的概念让我们简单介绍一下编程。编程是人与计算机之间的一种交流方式,通过编写一系列的程序指令,指导计算机执行相应的任务。专门从事编程工作的技术人员被称为程序员。在计算机领域,编程可以细分为许多技术方向。从整体上看,可以分为两类,即高层编程和低层编程。当......
  • 【学习笔记-计算机网络基础】应用层
    概述 应用层是开放系统的最高层,是直接为应用进程提供服务的。 应用层协议和应用主要三种连接模式www(HTTP):服务器读取并处理、响应请求。BitTorrent:众多客户端自发构成文件部分,下载上传时由Tracker分配调度查询所处客户端。.Skype:找中间人传话,请求双房打开两座客......
  • 剥下“java.lang.OutOfMemoryError: unable to create new native thread”的外衣
     星期一早上到了公司,据称产品环境抛出了最可爱的异常—OutOfMemory, 它是这样来描述他自己的:java.lang.OutOfMemoryError:unabletocreatenewnativethread而且这位仁兄竟然还堂而皇之地同时出现在了3个application里面,所有应用全部遭殃。那可爱的OOM是如何产生的呢?直接原因......
  • 智慧校园源码:vue2+Java+springboot+MySQL+elmentui+jpa+jwt
    智慧校园综合管理云平台源码系统主要以校园安全、智慧校园综合管理云平台为核心,以智慧班牌为学生智慧之窗,以移动管理平台、家校沟通为辅。教师—家长一学校—学生循环的无纸化管理模式及教学服务,实现多领域的信息互联互通以及校园管理一体化、信息数据化、数据自动化。智慧班牌融合......