📣 独立日限时特惠: VIP通行证立减$68
查看: 1084| 回复: 3
跳转到指定楼层
上一主题 下一主题
收起左侧

[学Java/C#] LeetCode 155 求解一行代码

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
本帖最后由 zurich.hill 于 2020-9-4 10:23 编辑
  1. class MinStack {
  2.    
  3.     int min = Integer.MAX_VALUE;
  4.     Stack<Integer> stack = new Stack<Integer>();
  5.    
  6.     public void push(int x) {

  7.         if(x <= min){         
  8.             stack.push(min);
  9.             min=x;
  10.         }
  11.         stack.push(x);
  12.     }

  13.     public void pop() {

  14.         if(stack.pop() == min) min = stack.pop();
  15.     }

  16.     public int top() {
  17.         return stack.peek();
  18.     }

  19.     public int getMin() {
  20.         return min;
  21.     }
  22. }
复制代码



如题,第三行,是把 min 初始化成 Integer.MAX_VALUE, 那岂不是,stack里面,最底层,永远都是 Integer.MAX_VALUE,这个符合题目意思吗?  

上面代码可以通过。

我只是不懂,这样的话,stack里面就多了一个 Integer.MAX_VALUE

上一篇:求大佬帮忙解一道题
下一篇:面试中碰到LRU用Python写能用OrderedDict吗
🔗
idealmaster 2020-9-4 10:52:36 | 只看该作者
全局:
没啥问题,相当于放了一个哨兵值,不用判断栈是否为空的小技巧,是提升效率的
你就想C里的字符串还都多放一个'\0'结尾呢
回复

使用道具 举报

🔗
Alex08 2020-9-4 12:15:23 | 只看该作者
全局:
是拿Integer.MAX_VALUE封顶的,之后迭代更新的值都一定比它小,所以min在Integer.MAX_VALUE的基础上不断往小更新。
感觉lz的问题是把Integer.MIN_VALUE和Integer.Max_VALUE搞混了。
回复

使用道具 举报

🔗
invisibili 2020-9-4 13:38:45 | 只看该作者
全局:
只要函数调用符合调用者对于功能的期望 里面怎么实现都可以 多加几个MAX_VALUE都可以
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表