区间合并
题设 给定 n 个区间 [li,ri],要求合并所有有交集的区间。 注意如果在端点处相交,也算有交集。 输出合并完成后的区间个数。 例如:[1,3] 和 [2,6] 可以合并为一个区间 [1,6]。 题解 typedef pair<int,int> pii ; vector<pii> nums,res ; int main() { int s...
题设 给定 n 个区间 [li,ri],要求合并所有有交集的区间。 注意如果在端点处相交,也算有交集。 输出合并完成后的区间个数。 例如:[1,3] 和 [2,6] 可以合并为一个区间 [1,6]。 题解 typedef pair<int,int> pii ; vector<pii> nums,res ; int main() { int s...
1)题设 输入一个长度为 n 的整数序列。 接下来再输入 m 个询问,每个询问输入一对 l,r。 对于每个询问,输出原序列中从第 l 个数到第 r 个数的和。 输入格式 第一行包含两个整数 n 和 m。 第二行包含 n 个整数,表示整数数列。 接下来 m 行,每行包含两个整数 l 和 r,表示一个询问的区间范围。 输入样例: 5 3 2 1 3 6 4 1 2 1 3 2 4 ...
题目描述 给定一个长度为n的数列,请你求出数列中每个数的二进制表示中1的个数。 样例 输入样例: 5 //输入的数字个数 1 2 3 4 5 输出样例: 1 1 2 1 2 (Lowbit) $O(nlogn)$ 使用lowbit操作,进行,每次lowbit操作截取一个数字最后一个1后面的所有位,每次减去lowbit得到的数字,直到数字减到0,就得到了最终1的个数, Lo...
class Solution { public: void prim(int n,vector<vector<int>>A,vector<int>&lowcost,vector<int>&closet,vector<bool>&done,int& sum){ for(int cnt=0...
**Floyd算法的代码只有三段:建立并初始化最短距离A数组、把所有A[i][i]置0、k-i-j循环** class Solution { public: void Floyd(vector<vector<int>>& edges, int n, vector<vector<int>>& A) { ...
注意处理重边! A的二维数组、自环路径大小置0、if (A[i][k] != INF && A[k][j] != INF)、 A[i][k] + A[k][j]而不是edges[i][k] + edges[k][j]这些注意点都和lc1334一样 query函数–INF/2是什么意思? INF /...
class Solution { public: int networkDelayTime(vector<vector<int>>& times, int n, int k) { //记录源点k到各点的最短距离的【dist数组】 vector<int> dist(n+1, INT_MAX);//初始化为n+1的长度,是因为下标...
class Solution { public: void DFS(vector<vector<int>>&edges,vector<int>&done,int x){ //对当前顶点的操作 done[x]=1; int n=edges[0].size()-1; for(int i=1;i<=n;i...
class Solution { public: bool DFS(int i,int n,vector<vector<int>>&A,vector<int>&done,int destination){ bool is=false; done[i]=1; if(i==destinat...
const int N = 1010; // 定义常量N,表示数组的最大大小 int n, m; // n和m分别表示两个字符串的长度 char a[N], b[N]; // 定义两个字符数组来存储输入的字符串 int f[N][N]; // 定义二维数组f用于动态规划 int main() { sca...