1275 找出井字棋的獲勝者

2021-10-09 20:12:31 字數 2114 閱讀 7143

題目描述:

a 和 b 在乙個 3 x 3 的網格上玩井字棋。

井字棋遊戲的規則如下:

玩家輪流將棋子放在空方格 (" ") 上。

第乙個玩家 a 總是用 「x」 作為棋子,而第二個玩家 b 總是用 「o」 作為棋子。

「x」 和 「o」 只能放在空方格中,而不能放在已經被占用的方格上。

只要有 3 個相同的(非空)棋子排成一條直線(行、列、對角線)時,遊戲結束。

如果所有方塊都放滿棋子(不為空),遊戲也會結束。

遊戲結束後,棋子無法再進行任何移動。

給你乙個陣列 moves,其中每個元素是大小為 2 的另乙個陣列(元素分別對應網格的行和列),它按照 a 和 b 的行動順序(先 a 後 b)記錄了兩人各自的棋子位置。

如果遊戲存在獲勝者(a 或 b),就返回該遊戲的獲勝者;如果遊戲以平局結束,則返回 「draw」;如果仍會有行動(遊戲未結束),則返回 「pending」。

你可以假設 moves 都 有效(遵循井字棋規則),網格最初是空的,a 將先行動。

示例 1:

輸入:moves = [[0,0],[2,0],[1,1],[2,1],[2,2]]

輸出:「a」

解釋:「a」 獲勝,他總是先走。

"x " "x " "x " "x " "x "

" " -> " " -> " x " -> " x " -> " x "

" " "o " "o " "oo " 「oox」

示例 2:

輸入:moves = [[0,0],[1,1],[0,1],[0,2],[1,0],[2,0]]

輸出:「b」

解釋:「b」 獲勝。

"x " "x " "xx " 「xxo」 「xxo」 「xxo」

" " -> " o " -> " o " -> " o " -> "xo " -> "xo "

" " " " " " " " " " "o "

示例 3:

輸入:moves = [[0,0],[1,1],[2,0],[1,0],[1,2],[2,1],[0,1],[0,2],[2,2]]

輸出:「draw」

輸出:由於沒有辦法再行動,遊戲以平局結束。

「xxo」

「oox」

「xox」

示例 4:

輸入:moves = [[0,0],[1,1]]

輸出:「pending」

解釋:遊戲還沒有結束。

"x "

" o "

" "1 <= moves.length <= 9

moves[i].length == 2

0 <= moves[i][j] <= 2

moves 裡沒有重複的元素。

moves 遵循井字棋的規則。

方法1:

主要思路:

(1)定義乙個判斷新增動作後,新增動作是否可以決定勝負的函式;

(2)將動作分別對a,b兩個人使用,並判斷使用後的陣列是否可以確定勝負;

(3)對最後沒有決定勝負的情形進行判斷,判斷是否是平局即可;

class

solution}if

(i==3)

//行 i=0;

for(

;i<3;

++i)}if

(i==3)

//主對角線

if(row==col)}if

(i==3)

}//副對角線

if(row==

2-col)}if

(i==3)

}//還不能判斷勝負

return

false;}

string tictactoe

(vectorint>>

& moves)

}else

}++index;

}//是否是平局

if(moves.

size()

==9)return

"pending";}

};

1275 找出井字棋的獲勝者

解題思路 1.按照題目的意思,a b一定不會走已經走過的位置,所以遍歷陣列,由於遵守先a後b,所以偶數項就是a走的棋子,存入a陣列中,同時將a中的此點置為1,其他存入b陣列中 2.滿足獲勝的條件只有8種,分別是a或b的橫座標或縱座標相等的點,斜對角線上的點,由於a中各點一定不相等,所以滿足a獲勝的條...

返回獲勝者的分數

有一排正數,玩家a和玩家b都可以看到。每位玩家在拿走數字的時候,都只能從最左和最右的數中選擇乙個。玩家a先拿,玩家b再拿,兩人交替拿走所有的數字。兩人都力爭自己拿到的數的總和比對方多。請返回最後獲勝者的分數。例如 5,2,3,4 玩家a先拿,當前他只能拿走5或者4。如果玩家a拿走5,那麼剩下2,3,...

LeeCode 1832 找出遊戲的獲勝者

題目描述 共有 n 名小夥伴一起做遊戲。小夥伴圍成一圈,按順時針順序從1到n編號。確切地說,從第 i 名小夥伴順時針移動一位會到達第 i 1 名小夥伴的位置,其中 1 i n,從第 n 名小夥伴順時針移動一位會回到第 1 名小夥伴的位置。遊戲遵頊如下規則 從第 1 名小夥伴所在位置開始 沿著順時針方...