zoukankan      html  css  js  c++  java
  • LeetCode "Design Tic-Tac-Toe"

    We don't have to keep a complete chess board.. just counters!

    class TicTacToe {
        vector<int> cntVer;
        vector<int> cntHor;
        int cntDiag0;
        int cntDiag1;
        int _n;
    public:
        /** Initialize your data structure here. */
        TicTacToe(int n) {
            cntVer.assign(n, 0);
            cntHor.assign(n, 0);
            cntDiag0 = cntDiag1 = 0;
            _n = n;
        }
        
        /** Player {player} makes a move at ({row}, {col}).
            @param row The row of the board.
            @param col The column of the board.
            @param player The player, can be either 1 or 2.
            @return The current winning condition, can be either:
                    0: No one wins.
                    1: Player 1 wins.
                    2: Player 2 wins. */
        int move(int row, int col, int player) 
        {
            int d = player == 1 ? 1 : -1;
            
            cntVer[col] += d;
            if(abs(cntVer[col]) == _n) return player;
                
            cntHor[row] += d;
            if(abs(cntHor[row]) == _n) return player;
            
            if(col== row)
            {
                cntDiag0 += d;
                if(abs(cntDiag0) == _n) return player;
            }
            if ((col + row) == _n - 1)
            {
                cntDiag1 += d;
                if(abs(cntDiag1) == _n) return player;
            }
                
            return 0;
        }
    };
  • 相关阅读:
    Angular(一)
    多变的形状
    二叉树
    快速排序
    冒泡排序
    插入排序
    大话程序猿眼里的高并发架构
    整屏滚动
    增加删除一行标签
    无缝滚动
  • 原文地址:https://www.cnblogs.com/tonix/p/5468270.html
Copyright © 2011-2022 走看看