一道M$面试题的解法...# JobHunting - 待字闺中
o*r
1 楼
从这个版受益很多,攒人品
尽量用中文,免得google到麻烦
就是那个一个数组3堆栈了,空间复杂度O(1)
闲话少说,上code,
思路很简单,就是两头各一个stack,
第3个stack放中间,浮动的,可以往左、右推
有啥bug随便挑,轻点拍啊
#include
#include
using namespace std;
const int n=3;
int R[3*n];
int TopA = 0, TopB = 2*n - 1, BottomB = 2*n-1, TopC = 3*n -1;
bool IsABFull(){return TopA == TopB + 1;};
bool IsBCFull(){return BottomB == TopC;};
int MoveBLeft()
{
// can not move
if (IsABFull()) return 0;
// ensure nOffset >= 1
int nOffset = max(1, (TopB
尽量用中文,免得google到麻烦
就是那个一个数组3堆栈了,空间复杂度O(1)
闲话少说,上code,
思路很简单,就是两头各一个stack,
第3个stack放中间,浮动的,可以往左、右推
有啥bug随便挑,轻点拍啊
#include
#include
using namespace std;
const int n=3;
int R[3*n];
int TopA = 0, TopB = 2*n - 1, BottomB = 2*n-1, TopC = 3*n -1;
bool IsABFull(){return TopA == TopB + 1;};
bool IsBCFull(){return BottomB == TopC;};
int MoveBLeft()
{
// can not move
if (IsABFull()) return 0;
// ensure nOffset >= 1
int nOffset = max(1, (TopB