力扣第165場周賽

2021-10-01 04:53:37 字數 2697 閱讀 8737

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」

思路:模擬+迴圈判斷,寫迴圈要吐2333

按著moves所走,所以每走一步判斷有沒有人贏,用1表示a走,2表示b走。每步判斷一下就好了。

class solution 

if(ans==3)return true;ans=0;

t=tu[2][0];

if(t!=0)

for(int i=2;i>=0;i--)

if(ans==3)return true;

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

if(ans==3)return true;

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

if(ans==3)return true;

}return false;

}string tictactoe(vector>& moves) else return ans;}};

給你乙個 m * n 的矩陣,矩陣中的元素不是 0 就是 1,請你統計並返回其中完全由 1 組成的 正方形 子矩陣的個數。

示例 1:

輸入:matrix =

[[0,1,1,1],

[1,1,1,1],

[0,1,1,1]

]輸出:15

解釋:邊長為 1 的正方形有 10 個。

邊長為 2 的正方形有 4 個。

邊長為 3 的正方形有 1 個。

正方形的總數 = 10 + 4 + 1 = 15.

題解:二維字首和+暴力。

先簡單講講一維的字首和。乙個簡單的公式sum[i]=sum[i-1]+a[i]這是一位字首和,sum[i]為1到i的元素之和。那麼我們求每個數字的時候,就有sum[i]-sum[i-1]=a[i]。字首和一般用在優化上。如那些需要遍歷a到b的情況有sum[a]-sum[b-1]為什麼是b-1,因為sum[b-1]沒有包括a[b]

詳細講一下,左上字首和是紅色,左下字首和是紅色+藍色,這個點上方字首和是綠色+紅色。

求整個的面積可以用__紫色+藍色紅色+紅色綠色-紅色__。

那麼就有sum[i][j]=a[i][j]+sum[i-1][j]+sum[i][j-1]-sum[i-1][i-1]

我們先求每個點的二維字首和,小小模擬一下下,向右向下延長正方形的邊,判斷邊*邊是不是等於中間的sum值sum[i][j]-sum[i-1][j]-sum[i][j-1]+sum[i-1][j-1]

給你乙個由小寫字母組成的字串 s,和乙個整數 k。

請你按下面的要求分割字串:

首先,你可以將 s 中的部分字元修改為其他的小寫英文本母。

接著,你需要把 s 分割成 k 個非空且不相交的子串,並且每個子串都是回文串。

請返回以這種方式分割字串所需修改的最少字元數。

示例 1:

輸入:s = 「abc」, k = 2

輸出:1

解釋:你可以把字串分割成 「ab」 和 「c」,並修改 「ab」 中的 1 個字元,將它變成回文串。

示例 2:

輸入:s = 「aabbc」, k = 3

輸出:0

解釋:你可以把字串分割成 「aa」、「bb」 和 「c」,它們都是回文串。

示例 3:

輸入:s = 「leetcode」, k = 8

輸出:0

就放下題面吧哈哈

class solution }}

}return dp[0][s.length()-1][v];}};

力扣第 202 場周賽

傳送門 5185 存在連續三個奇數的陣列 給你乙個整數陣列 arr,請你判斷陣列中是否存在連續三個元素都是奇數的情況 如果存在,請返回 true 否則,返回 false 示例 1 輸入 arr 2,6,4,1 輸出 false 解釋 不存在連續三個元素都是奇數的情況。示例 2 輸入 arr 1,2,...

力扣第 221 場周賽

class solution def halvesarealike self,s str bool score a e i o u a e i o u a s len s 2 b s len s 2 sa 0for ch in a if ch in score sa 1 sb 0for ch in ...

力扣 第 208 場周賽

今晚剩乙個小時左右了emmmm能寫多少寫多少哈,並且小白做題慢,還要參考大佬的題解優化emmmmm肯定做不完吶吶吶 我才不會說是因為我不會做呢 那,就開始咯 模擬一下棧的思路,還行吧 就是,一開始想多了,想匹配所有字元emmmm關鍵 還涉及轉製 俺還寫了測試主函式emmmm 讀題讀了半天,幸虧不是英...