周賽爆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 ...