2026/3/28 22:45:17
网站建设
项目流程
硬件开发平台,网站站内的seo怎么做,温州房产信息网,专业的网络营销公司lc2424单指针用一个布尔数组标记已上传的视频#xff0c;每次上传后更新当前连续上传前缀的最大长度#xff0c;直接返回这个长度即可class LUPrefix {
public:int n;bool * visited;int ID;LUPrefix(int n) {this-n n;visited new bool[n 1];for (int i 0; i n…lc2424单指针用一个布尔数组标记已上传的视频每次上传后更新当前连续上传前缀的最大长度直接返回这个长度即可class LUPrefix {public:int n;bool * visited;int ID;LUPrefix(int n) {this-n n;visited new bool[n 1];for (int i 0; i n 1; i ){visited[i] false;}ID 0;}void upload(int video) {visited[video] true;while (ID 1 n visited[ID 1] true)ID ;}int longest() {return ID;}};按秩合并是启发式合并在并查集里的具体实现按秩合并的“秩”通常是树的高度或节点数是启发式合并选择合并方向的核心依据本质是通过让小树合并到大树下避免并查集退化成链表保证操作的时间复杂度接近常数class DSU {private:vectorint parent;vectorint rank;public:DSU(int n) {parent.resize(n);rank.resize(n, 1);for (int i 0; i n; i) parent[i] i;}int find(int x) {if (parent[x] ! x) parent[x] find(parent[x]);return parent[x];}void unite(int x, int y) {int fx find(x), fy find(y);if (fx fy) return;if (rank[fx] rank[fy]) parent[fx] fy;else {parent[fy] fx;if (rank[fx] rank[fy]) rank[fx];}}};lc1292二维前缀和预处理: sum[i 1][j 1] sum[i 1][j] sum[i][j 1] - sum[i][j] mat[i][j];求解: int t sum[r2][c2] - sum[r2][c1] - sum[r1][c2] sum[r1][c1];二维前缀和快速计算矩阵内正方形子矩阵的和遍历所有可能的正方形找出不超过阈值的最大边长class Solution {public:int maxSideLength(vectorvectorint mat, int threshold){vectorvectorint sum;int m mat.size(), n mat[0].size();sum.resize(m 1, vectorint(n 1));for (int i 0; i m; i){for (int j 0; j n; j){sum[i 1][j 1] sum[i 1][j] sum[i][j 1] - sum[i][j] mat[i][j];}}int mx0;for(int r10;r1m;r1){for(int c10;c1n;c1){for(int kmx1; r1km c1kn; k){int r2 r1 k, c2 c1 k;int t sum[r2][c2] - sum[r2][c1] - sum[r1][c2] sum[r1][c1];if(t threshold)mx k;elsebreak;}}}return mx;}};