leetCode第196場周賽學習

2021-10-09 05:13:11 字數 2383 閱讀 5057

排序一下 然後列舉 只要不滿足等差數列性質就返回false,否則就返回true

class

solution

return

true;}

};

有一塊木板,長度為 n 個 單位 。一些螞蟻在木板上移動,每只螞蟻都以 每秒乙個單位 的速度移動。其中,一部分螞蟻向 左 移動,其他螞蟻向 右 移動。

當兩隻向 不同 方向移動的螞蟻在某個點相遇時,它們會同時改變移動方向並繼續移動。假設更改方向不會花費任何額外時間。

而當螞蟻在某一時刻 t 到達木板的一端時,它立即從木板上掉下來。

給你乙個整數 n 和兩個整數陣列 left 以及 right 。兩個陣列分別標識向左或者向右移動的螞蟻在 t = 0 時的位置。請你返回最後乙隻螞蟻從木板上掉下來的時刻。

我我我我 第一想法是按照題意模擬螞蟻的運動 然後得到結果 然後想想還是很繁瑣的 就打算看看題解再嘗試

!!沒想到 這就是腦經急轉彎 按照題意 當兩隻向 不同 方向移動的螞蟻在某個點相遇時,它們會同時改變移動方向並繼續移動。假設更改方向不會花費任何額外時間。這其實就是迷惑 巨集觀上看並沒有發生任何變化(雖然的確發生了變化) 如果沒有這句話的話看著會更清晰!

那麼 我們就當他沒變化 因為邏輯上是發生了變化 但是完全不影響結果 (兩隻螞蟻改變方向和不改變方向效果一致)

class

solution

};

給你乙個只包含 0 和 1 的rows * columns矩陣mat,請你返回有多少個子矩形的元素全部都是 1 。

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

[1,1,0],

[1,1,0]]

輸出:13

解釋:有 6 個 1x1 的矩形。

有 2 個 1x2 的矩形。

有 3 個 2x1 的矩形。

有 1 個 2x2 的矩形。

有 1 個 3x1 的矩形。

矩形數目總共 = 6 + 2 + 3 + 1 + 1 = 13 。

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

[0,1,1,1],

[1,1,1,0]]

輸出:24

解釋:有 8 個 1x1 的子矩形。

有 5 個 1x2 的子矩形。

有 2 個 1x3 的子矩形。

有 4 個 2x1 的子矩形。

有 2 個 2x2 的子矩形。

有 2 個 3x1 的子矩形。

有 1 個 3x2 的子矩形。

矩形數目總共 = 8 + 5 + 2 + 4 + 2 + 2 + 1 = 24 。

第乙個for預處理,得到(i,j)向左延申的連續的1的個數,然後第二個for列舉高就得到了能夠得到的矩形

row[i]

[j]表示(i,j)向左延申的連續的1的個數

然後第二個for遍歷幹的事情是算個數,從高度k1的矩形到高度為i的矩形,我們前面預處理得到的就是當前元素在這一行能向做衍生的最大寬度,算個數的時候需要借助這個寬度了,如果當row[k]

[j]大於row[i]

[j]那麼我們加上row[i]

[j] 如果row[k]

[j]小於row[i]

[j]那麼我們加上row[k]

[j],因為題意要求必須滿足條件

那麼我們就按照意思來 對於大於等於當前數的 都+當前數 直到遇到第乙個小於當前數的就+這個數 重複前面的步驟 就能發現優化的思路 可以採用單調棧將複雜度降低至o

(n)

class

solution

else

if(mat[i]

[j])

else}}

int ans =0;

for(

int i =

0; i < n;

++i)}}

return ans;}}

;

class

solution}}

int res =0;

for(

int i =

0; i < n; i ++

)else

stk.

push()

; res +

= s;}}

return res;}}

;

leetcode第196場周賽

給你乙個只包含 0 和 1 的 rows columns 矩陣 mat 請你返回有多少個 子矩形 的元素全部都是 1 示例 1 輸入 mat 1,0,1 1,1,0 1,1,0 輸出 13 解釋 有 6 個 1x1 的矩形。有 2 個 1x2 的矩形。有 3 個 2x1 的矩形。有 1 個 2x2 ...

LeetCode周賽記錄 第196場周賽

2020年7月5日,leetcode第196場周賽個人記錄。第一次參加leetcode周賽,4道題目完成3道,中國排名163,全球排名377。對我個人來說算是個普通成績吧。以後打算每兩周參加一次周賽,同時利用部落格記錄下每次的成績,同時分享一下對於題目的個人想法和感受。給你乙個數字陣列 arr 如果...

LeetCode第196場周賽題解

2020.7.5第196場周賽 判斷乙個給定的數列能否形成乙個等差數列。先將給定的數列排序,判斷每兩個相鄰的數的差值是否相等即可。class solution return true 給定兩個陣列,分別表示向左走和向右走的螞蟻的初始位置,n為木板的總長度,兩隻螞蟻相遇時會改變方向,計算最後乙隻螞蟻從...