1576. 替換所有的問號
難度:打卡
考點:遍歷
時間複雜度:o(n)
class solution
char chs = new char[110];
int n = s.length();
chs[0] = '0';
for(int i = 1; i <= n; ++i)
chs[n + 1] = '0';
for(int i = 1; i <= n; ++i)
chs[i] = cha[c];}}
string str = "";
for(int i = 1; i <= n; ++i)
return str;
}}
1577. 數的平方等於兩數乘積的方法數
難度:打卡
考點:雜湊表
時間複雜度:o(n^2)
//雜湊表加速即可
class solution
}for(int i = 0; i < nums1.length; ++i)
}for(int i = 0; i < nums1.length; ++i)
}for(int i = 0; i < nums2.length; ++i)
}return res;
}}
1578. 避免重複字母的最小刪除成本
難度:打卡
考點:雙指標,累加重複字元的權值減去最大權值
時間複雜度:o(n)
class solution
if(j - i > 1)
i = j;
j++;
}return res;
}}
1579. 保證圖可完全遍歷
難度:中等
考點:並查集、dfs、(克魯斯卡爾最小生成樹的方式其實是並查集)(公共邊方法其實是dfs)
時間複雜度o(n + m)
演算法思想:先找到3的型別,將其插入到並查集,然後在根據這個並查集分別去新增1型別和2型別,重複的邊就計數,到最後所有節點都是在乙個節點下的(可以迴圈也可以先設定n,每次加入一條邊就減一表示並查集的節點個數加1),否則就是非連通圖,輸出結果即可。
並查集做法:
可以先設定聯通的點為n,每次聯通邊新增進並查集則n--即可
class solution
boolean add(int a,int b,int p)
public int maxnumedgestoremove(int n, int edges)
for(int i = 0; i < edges.length; ++i)}}
for(int i = 0; i <= n; ++i)pb[i] = pa[i];
for(int i = 0; i < edges.length; ++i)
if(t == 2)
}if(cc > 1 || cb > 1)return -1;//大於一是因為剛開始並查集就有乙個節點,就是根節點
return res;
}}
精妙的dfs(需要分別儲存123三種型別邊,然後dfs他們)
演算法思想:
這道題用普通的dfs就可以解,思路如下:
首先dfs alice 和 bob,其中有一位不能dfs走完全部節點,則返回-1.
之後,清空資料,從1節點開始,dfs只走3型別的邊,dfs完記錄最多能訪問多少個節點count。這些節點組成乙個可用公共邊互通的子集,子集內遍歷訪問的邊數就是count-1;
再找下乙個未訪問的節點,繼續dfs,並繼續形成子集,並把所有的子集邊數相加為sumbian = sum(count[i] - 1);
這個sum則是alice和bob遍歷中,能公用的最大邊數。
則alice和bob 訪問使用的邊數量為: common = (n - 1) + (n - 1) - sum
最大可刪除的邊為: edges.length - common = edges.length - (n - 1) * 2 + sum.
class solution
for(int i = 0; i < l; ++i)
dfs(1, 0);
if(cnt < n)return -1;
cnt = 0;
arrays.fill(f, false);
dfs(1, 1);
if(cnt < n)return -1;
arrays.fill(f, false);
int com = 0;
for(int i = 1; i <= n; ++i)
}return l - (n - 1 << 1) + com;
}void dfs(int v, int t)
if(t == 0 || t == 1)}}
}
LEETCODE 第 205 場周賽
修改字串中的?字元,使得字串中不存在連續相同的字母 1 n 100 僅包含小寫字母和?字元 很暴力的題目,貪心選取就結束了 define sz x int x.size class solution string modifystring string s 給定兩個整數陣列nums1和nums2。返...
leetcode 第132場周賽
愛麗絲和鮑勃一起玩遊戲,他們輪流行動。愛麗絲先手開局。最初,黑板上有乙個數字n。在每個玩家的回合,玩家需要執行以下操作 如果玩家無法執行這些操作,就會輸掉遊戲。只有在愛麗絲在遊戲中取得勝利時才返回true,否則返回false。假設兩個玩家都以最佳狀態參與遊戲。示例 1 輸入 2輸出 true解釋 愛...
leetcode周賽 第176場
題目描述 給你乙個 m n 的矩陣 grid,矩陣中的元素無論是按行還是按列,都以非遞增順序排列。請你統計並返回 grid 中 負數 的數目。示例 1 輸入 grid 4,3,2,1 3,2,1,1 1,1,1,2 1,1,2,3 輸出 8 解釋 矩陣中共有 8 個負數。示例 2 輸入 grid 3...