目录
1.王道代码题:【2018统考真题】给定一个含n(n>=1)个整数的数值,请设计一个在时间上尽可能高效的算法,找出数值中未出现的最小正整数,例如,数值{-5,3,2,3}中未出现的最小正整数是1,数组{1,2,3}中未出现的最小正整数是4。
2.王道代码题:【2020统考真题】定义三元组(a,b,c)(a,b,c均为正整数)的距离D=|a-b|+|b-c|+|c-a|。给定3个非空整数集合S1,S2和S3,按升序分别存储在3个数组中。请设计一个尽可能高效算法,计算并且输出所有可能的三元组(a,b,c)(a属于S1,b属于S2,c属于S3)中的最小距离。例如S1={-1,0,9},S2={-25,-10,10,11},S3={2,9,17,30,41},则最小距离为2,相应的三元组为(9,10,9)。
其他-王道数据结构算法题-顺序表题,如下
顺序表-删除值最小元素+元素逆置
顺序表-删除所有值为x的数据元素+删除值在给定值s与t之间的所有元素
顺序表-删除值在给定值之间元素+删除值重复元素
顺序表-两个有序顺序表合并+两个顺序表位置互换
顺序表-查找数值为x的元素+循环左移p个位置
顺序表-找出两个序列A和B的中位数+找出序列A的主元素
1.王道代码题:【2018统考真题】给定一个含n(n>=1)个整数的数值,请设计一个在时间上尽可能高效的算法,找出数值中未出现的最小正整数,例如,数值{-5,3,2,3}中未出现的最小正整数是1,数组{1,2,3}中未出现的最小正整数是4。
代码实现:
//找出最小的未出现的正整数 #includeusing namespace std; int a[4]={-5,3,2,3}; //int n=4; int i; int findmin(int a[]) { int b[4+2]={' '}; for(i=0;i<4;i++) { if(a[i]>0&&a[i]<=4+1) b[a[i]]=1; } int ans=0; for(i=1;i<4+2;i++) { if(b[i]==0) { ans=i; break; } } return ans; } int main() { for(i=0;i<4;i++) cout<
int a[4]={1,2,3};
2.王道代码题:【2020统考真题】定义三元组(a,b,c)(a,b,c均为正整数)的距离D=|a-b|+|b-c|+|c-a|。给定3个非空整数集合S1,S2和S3,按升序分别存储在3个数组中。请设计一个尽可能高效算法,计算并且输出所有可能的三元组(a,b,c)(a属于S1,b属于S2,c属于S3)中的最小距离。例如S1={-1,0,9},S2={-25,-10,10,11},S3={2,9,17,30,41},则最小距离为2,相应的三元组为(9,10,9)。
代码实现:
//三元组最短距离 #includeusing namespace std; #define Max 0x7fffffff int abss(int a) { if(a<0) return -a; else return a; } int min(int a,int b){//求最小值函数 int minvalue; minvalue = a < b ? a : b; return minvalue; } bool minn(int a,int b,int c) { if(min(a,min(b,c))==a) return true; return false; } int findd(int a[],int b[],int c[],int na,int nb,int nc) { int i=0,j=0,k=0,ans=Max; while(i =0) { int v=abs(a[i]-b[j])+abs(b[j]-c[k])+abs(c[k]-a[i]); if(v



