第 204 場周賽

2021-10-24 02:22:32 字數 1387 閱讀 1201

周賽爆00000,慘!
列舉起點,時間複雜度o(n ^ 2)

我不知道怎麼列舉偏移量,看了y總的if(arr[j] != arr[i + (j - i) % m]) //(j - i) % m是模式的偏移量,這一步妙!

而且記得以i為起點,長度為k*m的最右端點是 i + k * m - 1

class solution }if

(flag)

return true;

}return false;}}

;

線性dp,時間複雜度o(n)

在比賽中 補充g陣列想到了,邊界情況想不通!

class solution 

else

if(nums[i]

<0)

res =

max(res,f[i]);

}return res;}}

;

dfs找連通塊,時間複雜度o(n ^ 4)

比賽中題意沒理解明白,現在總結一下:即要出現兩個以上的連通塊。

check()函式返回圖中連通塊的數量,如果》1,即答案為0;如果 <= 1,那麼去掉乙個陸地,再檢查整個圖是否多出來兩個連通塊。如果還沒有,那麼答案就是2,因為去掉2個角,總能孤立出來乙個連通塊。

const

int n =35;

int n,m;

bool st[n]

[n];

vectorint>> g;

int dx[4]

=, dy[4]

=;void

dfs(

int x,

int y)

}bool check()

// 判斷連通塊的數量是否大於1

return cnt >1;

}class solution

return2;

}};

組合 + 遞迴,時間複雜度o(n ^ 2)

第四題習慣打醬油,遞推求組合數可以學一下!

typedef

long

long ll;

class solution

intf

(vector<

int> nums)

};

LeetCode 第 204 場周賽題解

知識點 列舉 這道題太直白了,沒啥花裡胡哨的東西,直接列舉起點,然後檢查是否至少有 k 段重複即可。class solution if flag else if hit 1 k return false 知識點 遞推設 pos i 是以 nums i 結尾,乘積為正的最長子陣列的長度。設 neg i...

第123場周賽

1,989.陣列形式的整數加法 方法一 逐位相加 思路 讓我們逐位將數字加在一起。舉乙個例子,如果要計算 123 與 912 的和。我們順次計算 3 2 2 1 1 9。任何時候,當加法的結果大於等於 10 我們要將進製的 1 加入下一位的計算中去,所以最終結果等於 1035。演算法 我們可以對以上...

第191場周賽

class solution return res 這裡有個注意的點,maxh maxw這兩個int的值的乘積會超過int的範圍,所以要先轉換為double class solution maxh maxh h horizontalcuts hcut 1 maxh h horizontalcuts ...