LeetCode:999.车的可用捕获量的非方向数组解法

LeetCode:999.车的可用捕获量的非方向数组解法

class Solution {
public:
    int numRookCaptures(vector< vector<char> >& board) {
        //寻找车
    	bool rookFound=false; //假设没找到
    	int x,y; //用于保存车的坐标
    	for (int i=0; i < board.size(); ++i)
    	{
    		for (int j=0; j < board.size(); ++j)
    		{
    			if (board[i][j]=='R')
    			{
    				rookFound=true;
    				x=i;y=j;
    				break;
    			}
    		}
    		if(rookFound)break;//如果找到了 退出循环
    	}

    	int np=0; //题目要求的值
    	for(int k = 0 ; k < board.size() ; ++k){
    		bool p=false,R=false,over=false;
            //分别表示 有没有合适的p 有没有车 有没有结束
    		switch(board[x][k]){
    			case 'p':
    				if (R)
    				{
    					np++;
    					over=true;
    				}
    				else p=true;
    			break;

    			case 'B':
    				if(R) over=true;
    				else p=false;
    			break;

    			case 'R':
    				R=true;
    				if(p) np++;
    				p=false;
    			break;
    		}
    		if(over)break;
    	}

        //接下来对于第y列再查一遍
    	for(int k = 0 ; k < board.size() ; ++k){
            bool p=false,R=false,over=false;
            //分别表示 有没有合适的p 有没有车 有没有结束
            switch(board[k][y]){
                case 'p':
                    if (R)
                    {
                        np++;
                        over=true;
                    }
                    else p=true;
                break;

                case 'B':
                    if(R) over=true;
                    else p=false;
                break;

                case 'R':
                    R=true;
                    if(p) np++;
                    p=false;
                break;
            }
            if(over)break;
        }
        
    	return np;
    }
};

为什么就得不到正确答案呢?

发布了2 篇原创文章 · 获赞 0 · 访问量 28
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览