当前位置:   article > 正文

LeetCode刷题Day1:最小栈_leetcode需要写main函数吗

leetcode需要写main函数吗
 				LeetCode day1
  • 1

任务要求 来源于LeetCode来源于LeetCode

  1. 注意点:LeetCode里面是不用写main,选择要实现的语言就会出现推荐给你的方法,把方法写完就行。
  2. 思路:说到栈就想到了之前学数据结构(c语言)时写的关于栈的代码,看任务要求是求最小栈,就想到可以根据之前学习的代码稍微修改一下
  3. 后来写了java语言实现的,要自己定义类似Stack的结构(参考了评论区的答案)

c语言实现
在这里插入图片描述
首先创建栈结构,这里我默认给的初始大小是10000,当我设置1000的时候LeetCode提交测试会报错,因为LeetCode会测试数据。

在这里插入图片描述
因为LeetCode不能写main,这里把声明MinStack放在创建方法里

  • 与之前在dec++书写的区别是:LeetCode整体相当于一个封装好的工具?(也许),就是不用我们自己去输入数据

在这里插入图片描述

  • 入栈、出栈、取栈顶方法的实现

在这里插入图片描述

  • 找最小栈元素

在这里插入图片描述

-判断是否有值,释放空间

c语言提交的结果
在这里插入图片描述

java语言实现

  • 后来用java语言试了一下…事实证明,不要直接用Stack,要自己定义一个类似Stack的结构去结题,不然的话…结果提交就是下面这样了…

在这里插入图片描述

  • 最后参考了评论区的答案
    在这里插入图片描述
  • 用是数组作为存储结构,Array.copyOf() 用于复制指定的数组内容以达到扩容的目的
  • 每次入栈的时候和min进行对比,获取最小值

在这里插入图片描述

  • 如果出栈时恰好是最小值 ,则要重新找到最小值

java语言提交的结果

在这里插入图片描述

  • 啊…现在看起来好很多了呢
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/633124
推荐阅读
相关标签
  

闽ICP备14008679号