算法基础课-1、基础算法
C++练习
JIngles123
生命不息,奋斗不止
展开
-
双指针算法 - AcWing 2816. 判断子序列(C++)- 简单
题目链接:https://www.acwing.com/problem/content/description/2818/题目如下://注意区别子序列匹配和子字符串匹配,后者为连续的匹配,前者为分散的有序匹配//KMP算法只要用于子字符串的匹配,而不能用于子序列的匹配#include <iostream>using namespace std;const int N=100010;int a[N],b[N];int main(){ int n,m; cin>原创 2022-03-10 21:31:26 · 335 阅读 · 0 评论 -
双指针算法 - AcWing 800. 数组元素的目标和(C++)- 简单
题目链接:https://www.acwing.com/problem/content/description/802/题目如下://双指针思想:A数组下标i从左往右移动,B数组下标j从右往左移动,由于都是升序,//则可以确保在A遍历一次,B遍历一次之后,找到解#include <iostream>using namespace std;const int N=100010;int A[N],B[N];int main(){ int n,m,x; cin>原创 2022-03-10 21:07:05 · 618 阅读 · 0 评论 -
双指针算法 - AcWing 799. 最长连续不重复子序列(C++)- 简单
题目链接:https://www.acwing.com/problem/content/description/801/题目如下:#include <iostream>#include <unordered_map>#include <limits.h>using namespace std;const int N=100010;int arr[N];int maxlen(int n);int main(){ int n; cin>原创 2022-03-10 02:16:09 · 226 阅读 · 0 评论 -
归并排序 - AcWing 788. 逆序对的数量(C++)- 简单
题目链接:https://www.acwing.com/problem/content/description/790/题目如下:#include <iostream>#include <vector>using namespace std;using LL=long long;const int N=100010;LL arr[N];LL merge(LL arr[],int l,int r);int main(){ int n; cin>原创 2022-03-09 10:15:55 · 324 阅读 · 0 评论 -
归并排序 - AcWing 787. 归并排序(C++)- 简单
题目链接:https://www.acwing.com/problem/content/description/789/题目如下:#include <iostream>#include <vector>using namespace std;const int N=100010;int arr[N];void merge(int arr[],int l,int r);int main(){ int n; cin>>n; for(i原创 2022-03-08 23:17:52 · 99 阅读 · 0 评论 -
快速排序 - AcWing 786. 第k个数(C++)- 简单
题目链接:https://www.acwing.com/problem/content/description/788/题目如下:#include <iostream>#include <algorithm>using namespace std;const int N=100010;int arr[N];int main(){ int n,k; cin>>n>>k; for(int i=0;i<n;i++) ci原创 2022-03-08 22:51:34 · 300 阅读 · 0 评论 -
快速排序 - AcWing 785. 快速排序(C++)- 简单
题目链接:https://www.acwing.com/problem/content/description/787/题目如下:#include <iostream>#include <algorithm>using namespace std;const int N=100010;int arr[N];void quick_sort(int arr[],int l,int r);int main(){ int n; cin>>n;原创 2022-03-08 22:06:34 · 237 阅读 · 0 评论 -
前缀和 - AcWing 795. 前缀和(C++)- 简单
题目链接:https://www.acwing.com/problem/content/description/797/题目如下:#include<iostream>using namespace std;int n,m;const int N=100010;int in[N];int sum[N];int main(){ sum[0]=0; cin>>n>>m; for(int i=0;i<n;i++){原创 2022-03-02 23:15:39 · 146 阅读 · 0 评论 -
浮点数二分 - AcWing 790. 数的三次方根(C++)- 简单
题目链接:https://www.acwing.com/problem/content/792/题目如下:#include <iostream>using namespace std;int main(){ double x; cin>>x; //浮点数二分,同之前,最终值在l上 double l=-10000,r=10000;//数据范围 while(r-l>1e-8){//如果要求10^-6,就写10^-8原创 2021-10-31 22:15:49 · 182 阅读 · 0 评论 -
整数二分 - AcWing 789. 数的范围(C++)- 简单
题目链接:https://www.acwing.com/problem/content/description/791/题目如下:#include <iostream>using namespace std;const int N=100010;int n,q;int a[N];//思路:对左右边界分别进行二分,分别找到左右的值不等于x的那个边界//注: 当满足条件时为l=mid,则初始mid需+1;若满足条件为r=mid,则初始mid不需+1,且最终找到的目标值都在l中i原创 2021-10-30 23:09:48 · 81 阅读 · 0 评论 -
位运算 - AcWing 801. 二进制中1的个数(C++)- 简单
题目链接:https://www.acwing.com/problem/content/description/803/题目如下:#include<iostream>using namespace std;const int N=100010;int num[N];int main(){ int n; cin>>n; for(int i=0;i<n;++i) cin>>num[i]; for(int i=0;i&原创 2021-10-28 22:25:58 · 184 阅读 · 1 评论