栈与队列-1-设计一个有getMin功能的栈
设计一个有getMin功能的栈
题目
实现一个特殊功能的栈,在满足栈的基本功能的条件下,提供返回栈中最小元素的操作。
要求
pop、push、getMin操作的时间复杂度为O(1)
实现思路:
使用两个栈实现需求,一个栈用来保存正常栈的数据信息stackData,一个栈保存每一步的最小值stackMin。由stackData栈实现正常的pop和push,由stackMin栈实现获取当前栈的最小值。
实现方案
方案一
对于stackMin保存每一步最小值,可以使用比较法进行保存,如果当前押入stackData的值小于等于stackMin栈顶的值,则将押入的数据保存stackMin栈中,大于stackMin栈顶的值,只押入stackData中。如果stackMin为空,则双栈都押入。弹出数据时,如果stackData弹出的数据等于当前stackMin栈顶元素,则stackMin栈顶元素也要弹出,即同步弹出。获取当前栈的最小值,直接获取stackMin栈顶元素即可。
方案二
stackMin栈数据重复保存法。将数据押入stackD ...
postgresql数据库安装
postgres安装教程简介目前网上有很多mac安装postgres的教程,完全按照那些教程安装,有的可能会出现各种问题,使得安装失败。
经过自己的多次失败安装后,将在安装过程中的细节整理一二,希望有像我一样困扰的朋友得以解决问题;
本文档解决了mac上安装报错等问题,顺便提供了docker安装过程中的一 些需要注意的细节以及提供了Centos上使用源码安装postgres的步骤;
本人亲测可行,希望可以帮助需要的人。
1. mac安装PostgreSQL12341. 在mac的 系统偏好设置-->用户与群组-->解锁-->点+-->新建用户(注意:此处将用户选为管理员用户,可以不用重启电脑,选普通成员后续操作略有不同)建议新建用户为:postgres 密码自定
122. 下载安装包下载地址:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
13. 打开下载的安装包,在安选择安装位置时,选择刚才新建的用户下的一个文件夹内(即 postgres用户下自拟一个文件夹)
...



