2026/4/18 5:46:27
网站建设
项目流程
网站设计前沿网站,泰安岱岳区招聘网最新招聘信息,怎么推广自己的微信,网站discuz迁移怎么做lcp62lc3532并查集二分#xff0c;直接输入数组原地并查集并查集管理数组索引#xff0c;merge(j, j 1);//数值差≤maxDiff的相邻索引合并#xff0c;到同一集合#xff0c;查询时判断if (find(u) find(v)) //两个索引是否在同一集合#xff0c;返回各查询的连通性结果其…lcp62lc3532并查集二分直接输入数组原地并查集并查集管理数组索引merge(j, j 1);//数值差≤maxDiff的相邻索引合并到同一集合查询时判断if (find(u) find(v)) //两个索引是否在同一集合返回各查询的连通性结果其实就是判断u是否可以扩散到v可扩散到 find自然等class Solution {public:vectorint pa;int find(int x)return pa[x] x ? x : pa[x] find(pa[x]);voidmerge(int u, int v)pa[find(u)] find(v);vectorbool pathExistenceQueries(int n, vectorint nums, int maxDiff, vectorvectorint queries){pa.resize(n);iota(pa.begin(), pa.end(), 0);for (int i 0; i nums.size(); i) {int idx upper_bound(nums.begin(), nums.end(), nums[i] maxDiff) - nums.begin();for (int j find(i); j idx - 1; j find(j))merge(j, j 1);//数值差≤maxDiff的相邻索引合并到同一集合}vectorbool ans(queries.size(), false);for (int i 0; i queries.size(); i) {int u queries[i][0], v queries[i][1];if (find(u) find(v)) //两个索引是否在同一集合ans[i] true;}return ans;}};