满足min.push.pop操作时间复杂度为o(1)的栈
来源:互联网 发布:linux shell 数值计算 编辑:程序博客网 时间:2024/06/01 08:00
/**设计一个栈结构,满足一下条件:min,push,pop操作的时间复杂度为O(1)。*/#include <limits>#include <exception>#include <iostream>class stack{public:stack(int max_size){this->max_size=max_size;this->cur_size=0;this->cur_min=std::numeric_limits<int>::max();this->cur_min_pos=-1;this->arr=new int[max_size];this->pos_arr=new int[max_size];}~stack(){delete[] arr;delete[] pos_arr;}int min(){return this->cur_min;}void push(int val){if(this->cur_size==this->max_size)return ;else{if(val<this->cur_min){this->cur_min=val;this->pos_arr[this->cur_size]=this->cur_min_pos;this->cur_min_pos=this->cur_size;}this->arr[this->cur_size++]=val;}}int pop(){if(this->cur_size==0)throw std::exception("stack has been empty");else{if(this->cur_min_pos==--this->cur_size){this->cur_min_pos=this->pos_arr[this->cur_size];this->cur_min=this->arr[this->cur_min_pos];}return this->arr[this->cur_size];}}private://currrent minint cur_min;//cur_min posint cur_min_pos;//value arrayint* arr;//pos arrayint* pos_arr;//max sizeint max_size;//current sizeint cur_size;};int main(int argc,char* argv[]){try{stack t(10);t.push(23);t.push(2);t.push(32);t.push(1);std::cout<<t.min()<<std::endl;///t.pop();std::cout<<t.min()<<std::endl;}catch(std::exception& e){std::cout<<"stack is empty!"<<std::endl;}system("PAUSE");return 0;}
- 满足min.push.pop操作时间复杂度为o(1)的栈
- 设计一个栈结构,满足一下条件:min,push,pop操作的时间复杂度为O(1)
- 设计一个栈结构,满足一下条件:min,push,pop操作的时间复杂度为O(1)。
- 设计一个栈结构,满足一下条件:min,push,pop操作的时间复杂度为O(1)
- 实现pop push min操作时间复杂度为O(1)的栈结构
- 实现一个栈,要求push,pop,Min的操作时间复杂度为O(1)
- 实现一个栈, 其 Push,Pop,Min 操作的 时间复杂度 均为 O( 1 )
- 微软100题40题-设计一个栈结构,满足一下条件:min,push,pop操作的时间复杂度为O(1)。
- 实现一个栈Stack,Push、Pop、Min(返回最小值的操作)的时间复杂度为O(1)
- 实现一个栈Stack,要求实现Push、Pop、Min(返回最小值的操作)的时间复杂度为O(1)
- 实现一个栈,要求Push/Pop/Min(返回最小值)的时间复杂度为O(1)
- 实现一个栈的pop,push,Min(最小值),时间复杂度为O(1)
- 实现一个栈,push、pop、求栈中最小值min的时间复杂度为O(1)
- 设计栈结构构造min()函数,也就是求栈中元素的最小值,要求pop、push、min时间复杂度为O(1)
- 设计一个栈,除了pop push 还支持Min,时间复杂度都为o(1);
- 实现一个栈,要求pop,push,Min,时间复杂度为O(1)
- 【栈队列】实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)
- 栈--实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)
- 短信监听器
- Chord算法(原理)
- after《很高兴见到你》
- javascript的history.back()兼容性问题
- PMBOK学习笔记-项目管理、项目集管理和项目组合管理间的关系
- 满足min.push.pop操作时间复杂度为o(1)的栈
- java中hashcode与equals方法
- C语言字节对齐
- PMBOK学习笔记-项目组合管理
- asp.net传值方法大全
- AS3开发必须掌握的内容
- Problem 18:Maximum path sum I
- 查询联系人
- PMBOK学习笔记-项目集管理