1275 找出井字棋的獲勝者

2021-10-02 12:08:54 字數 709 閱讀 3955

解題思路:

1.按照題目的意思,a、b一定不會走已經走過的位置,所以遍歷陣列,由於遵守先a後b,所以偶數項就是a走的棋子,存入a陣列中,同時將a中的此點置為1,其他存入b陣列中

2.滿足獲勝的條件只有8種,分別是a或b的橫座標或縱座標相等的點,斜對角線上的點,由於a中各點一定不相等,所以滿足a獲勝的條件必然是a中只有3點而每一點的範圍是0~2,所以可以通過判斷a中的陣列元素相加是否為3來判斷

3.如果沒有找到a活b獲勝的條件,就判斷原陣列的行是否小於9,如果小於9,說明還沒下完,可以繼續

4.如果沒找到獲勝者且行數大於等於9,說明兩者平局

**實現:

class solution 

else

}//橫(縱)座標相等的點

for (int i = 0; i < 3; i++)

//斜對角線上的點

if(a[0][0] + a[1][1] + a[2][2] == 3 || a[2][0] + a[1][1] + a[0][2] == 3)

return "a";

if(b[0][0] + b[1][1] + b[2][2] == 3 || b[2][0] + b[1][1] + b[0][2] == 3)

return "b";

if(moves.length<9)

return "draw";

}}

1275 找出井字棋的獲勝者

題目描述 a 和 b 在乙個 3 x 3 的網格上玩井字棋。井字棋遊戲的規則如下 玩家輪流將棋子放在空方格 上。第乙個玩家 a 總是用 x 作為棋子,而第二個玩家 b 總是用 o 作為棋子。x 和 o 只能放在空方格中,而不能放在已經被占用的方格上。只要有 3 個相同的 非空 棋子排成一條直線 行 ...

返回獲勝者的分數

有一排正數,玩家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 名小夥伴所在位置開始 沿著順時針方...