1275 LeetCode 找出井字棋的获胜者

题目描述:
LeetCode第1275题 找出井字棋的获胜者
类型简单

思路:
依次把A和B的位置放在容器中
然后编写判断三个点是否在一条直线上的函数
最后当A的棋数大于等于3时,进行直线判断

代码如下:

class Solution {
public:
    bool  line(vector<vector<int>>A){
        int k=A.size()-1;
        for(int i=0;i<A.size()-2;i++){
            for(int j=i+1;j<A.size()-1;j++){
                if((A[j][1]-A[i][1])*(A[k][0]-A[j][0])==(A[k][1]-A[j][1])*(A[j][0]-A[i][0]))
                return true;
            }
        }
        return false;
    }
    string tictactoe(vector<vector<int>>& moves) {
        vector<vector<int>>X;
        vector<vector<int>>O;
        for(int i=0;i<moves.size();i++){
            if(i%2==0) X.push_back(moves[i]);
            else O.push_back(moves[i]);
            if(X.size()>=3&&line(X)==true)
            return "A";
            else if(O.size()>=3&&line(O)==true)
            return "B";
        }
        if(moves.size()==9)
        return "Draw";
        return "Pending";
    }
};
发布了224 篇原创文章 · 获赞 0 · 访问量 3133

猜你喜欢

转载自blog.csdn.net/peachzy/article/details/104963665