LeetCode day1
任务要求
- 注意点:LeetCode里面是不用写main,选择要实现的语言就会出现推荐给你的方法,把方法写完就行。
- 思路:说到栈就想到了之前学数据结构(c语言)时写的关于栈的代码,看任务要求是求最小栈,就想到可以根据之前学习的代码稍微修改一下
- 后来写了java语言实现的,要自己定义类似Stack的结构(参考了评论区的答案)
c语言实现
首先创建栈结构,这里我默认给的初始大小是10000,当我设置1000的时候LeetCode提交测试会报错,因为LeetCode会测试数据。
因为LeetCode不能写main,这里把声明MinStack放在创建方法里
- 与之前在dec++书写的区别是:LeetCode整体相当于一个封装好的工具?(也许),就是不用我们自己去输入数据
- 入栈、出栈、取栈顶方法的实现
- 找最小栈元素
-判断是否有值,释放空间
c语言提交的结果
java语言实现
- 后来用java语言试了一下…事实证明,不要直接用Stack,要自己定义一个类似Stack的结构去结题,不然的话…结果提交就是下面这样了…
- 最后参考了评论区的答案
- 用是数组作为存储结构,Array.copyOf() 用于复制指定的数组内容以达到扩容的目的
- 每次入栈的时候和min进行对比,获取最小值
- 如果出栈时恰好是最小值 ,则要重新找到最小值
java语言提交的结果
- 啊…现在看起来好很多了呢