微软面试100题系列-设计包含 min 函数的栈
来源:互联网 发布:腾讯视频mac版有吗 编辑:程序博客网 时间:2024/06/05 16:21
定义栈的数据结构,要求添加一个 min 函数,能够得到栈的最小元素。
要求函数 min、push 以及 pop 的时间复杂度都是 O(1)。
#define STACK_SZ 10struct stack{int buf[STACK_SZ];int top_index;int min_index;};int is_empty(struct stack * s){return s->top_index == -1;}int is_full(struct stack * s){return s->top_index == STACK_SZ - 1;}int push(struct stack * s, int elem){if(is_full(s))return 0;s->top_index++;s->buf[s->top_index] = elem;if(s->min_index == -1)s->min_index = s->top_index;else if(s->buf[s->min_index] > elem)s->min_index = s->top_index;return 1;}int pop(struct stack * s, int * elem){if(is_empty(s))return 0;*elem = s->buf[s->top_index];s->top_index--;return 1;}void init_stack(struct stack * s){s->top_index = s->min_index = -1;}int get_min(struct stack * s, int * elem){if(s->min_index == -1)return 0;*elem = s->buf[s->min_index];return 1;}int main(int c, char * v[]){struct stack s;int min;init_stack(&s);if(get_min(&s, &min))printf("min value is : %d\n", min);push(&s, 4);push(&s, 3);push(&s, 4);push(&s, 4);if(get_min(&s, &min))printf("min value is : %d\n", min);}
0 0
- [微软面试100题] 设计包含min函数的栈
- 微软面试100题系列-设计包含 min 函数的栈
- 微软面试100题系列---设计包含min函数的栈
- 【从零单排之微软面试100题系列】02之包含 min 函数的栈
- 微软等面试100题第二题:设计包含min函数的栈
- 微软面试100题之二 设计包含min函数的栈。
- (微软面试100题)设计包含min 函数的栈
- 【微软面试100题】2.设计包含min函数的栈
- 微软等面试100题筛选答案-2-设计包含min函数的栈
- 微软100题系列之-----设计包含min函数的栈
- (微软100题)2.设计包含min 函数的栈。
- 【微软100题】002设计包含 min 函数的栈
- 面试100题:2.设计包含min函数的栈
- 面试100题:2.设计包含min函数的栈
- 包含min函数的栈 【微软面试100题 第二题】
- 微软100题-第2题设计包含min函数的栈
- 【微软100面试题实现】第02题:设计包含min函数的栈
- 《微软面试题》设计包含min函数的栈
- 酱酱的生日贺卡
- 使用投影计算两条直线交点
- SQL盲注攻击技术综述
- 寒假训练的小总结
- 雅芳涉嫌贿赂中国官员 或面临1.32亿美元罚款
- 微软面试100题系列-设计包含 min 函数的栈
- 10859 - Placing Lampposts(树形dp)
- ios项目设置arc和非arc
- 微软面试100题系列-数组连续和最大
- SRM 606 DIV1 450
- Permutation Sequence
- Linux的回环接口lo
- NSString属性声明中的copy和retain区别
- 理解autorelease