算法面试题
文章平均质量分 56
GuFanYuan
c/c++ and linux 学徒
展开
-
只用递归函数和栈操作实现一个栈的逆序
//仅用递归函数和栈操作逆序一个栈 //需要实现两个递归函数,一个用来返回并移除栈底元素,另一个递归函数就是逆序函数 #include class Solution { public: int getAndRemoveLastElement(stack& st) { int ret = st.top(); st.pop();原创 2015-09-21 21:48:38 · 1150 阅读 · 0 评论 -
设计一个getMin功能的栈,如果面试官让你写一个数组类,一定不要用指针去管理new出来原生的数组,那就是在给自己挖坑
//设计实现一个getMin功能的栈 #include #include using namespace std; class GetMinStack { public: void push(int x) { if (DataStack.empty() && MinStack.empty()) {原创 2015-09-21 19:31:41 · 712 阅读 · 0 评论 -
设计由两个栈组成的队列
//设计由两个栈组成的队列 //编写一个类,用两个栈实现队列,支持队列基本操作 //需要注意的是在是实现时TailSt不空时,不能对它Push操作, #include class myQueue { void Push(int x) { FrontSt.push(x); } int Top() {原创 2015-09-21 20:05:08 · 386 阅读 · 0 评论 -
给定一个数组,返回最大子数组的累加和并且返回该子数组
给定一个数组Arr,返回子数组的最大累加和 例如 arr[] = {1,-2,3,5,-2,6,-1};所有子数组中,[3,5,-2,6] 可以累加出最大和12 函数在设计的时候,应该考虑传入的数组Arr,同时要有一个传出数组,返回值会最大累加和,为整数 以下是代码 #include #include int maxSum(int arr[], int n,ve原创 2015-09-23 01:14:54 · 1217 阅读 · 0 评论