LeetCode第196場周賽題解

2021-10-08 02:07:28 字數 1504 閱讀 2244

2020.7.5第196場周賽

判斷乙個給定的數列能否形成乙個等差數列。

先將給定的數列排序,判斷每兩個相鄰的數的差值是否相等即可。

class

solution

return

true;}

};

給定兩個陣列,分別表示向左走和向右走的螞蟻的初始位置,n為木板的總長度,兩隻螞蟻相遇時會改變方向,計算最後乙隻螞蟻從木板上掉下來的時刻。

藍橋杯螞蟻感冒

class

solution

};

給定乙個由0和1組成的二維陣列,統計其子矩陣中全部為1的數目.

比賽時用的是二維字首和的方法,利用矩形的左上角和右下角固定乙個矩形,如果矩形的面積(即矩形內所有小正方形的數量)和矩形內的數字和相等,說明是符合條件的矩形,然後判斷所有子矩形是否符合。

時間複雜度是o(n4)很慢很慢,但是能過

class

solution

, n, m;

n = mat.

size()

; m = mat[0]

.size()

;for

(int i =

1; i <= n; i ++

)for

(int j =

1; j <= m; j ++

)int ans =0;

for(

int i =

1; i <= n; i ++

)for

(int j =

1; j <= m; j ++

)for

(int x = i; x <= n; x ++

)for

(int y = j; y <= m; y ++

)return ans;}}

;

給定乙個字串,每次可以交換相鄰兩個數,求出最多經過k次交換的數的最小值。(可以含有前導零)

要想使最後得到的數最小,需要依次從最高位到最低位滿足能夠取到的該數字上的最小值。

舉例:給定字串4321,k = 4,首先看千位最小能取幾,觀察後發現個位上的1經過3次交換後可滿足,此時將其他的數字上的數向後移動;再看到百位,此時只剩下一次機會,只能將4與3交換,故得到的最小值為1342

考慮到存在數字偏移的情況,可使用樹狀陣列+差分進行優化。

class

solution

void

add(

int a,

int b)

}int

get_sum

(int x)

return res;

} string mininteger

(string num,

int k)}}

}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場周賽學習

排序一下 然後列舉 只要不滿足等差數列性質就返回false,否則就返回true class solution return true 有一塊木板,長度為 n 個 單位 一些螞蟻在木板上移動,每只螞蟻都以 每秒乙個單位 的速度移動。其中,一部分螞蟻向 左 移動,其他螞蟻向 右 移動。當兩隻向 不同 方...