简易数组题目串串

本文介绍了一种算法,用于处理数组查询问题。具体包括如何快速查找数组中指定位置的元素,以及在数组的前x个元素中找到最大值的方法。通过对输入数据的预处理和迭代比较,该算法能够在多次查询中高效地返回结果。

提问
描述

给出一条长度为n的数组,接下来有m次提问,每次提问给出一个数x(x<=n),输出第x个数。

输入

第一行两个数n,m(10<=n,m<=100),分别表示数组长度和提问个数。 第二行有n个数,保证每个数均为小于10000的正整数。 接下来m行,每行一个数x。

输出

共m行,每行一个正整数。

输入样例 1

5 2
1 3 5 4 2
1
4
输出样例 1

1
4
来源

原创

#include<iostream>    	
using namespace std;
int main()		
{   int m,n,x;
   cin>>n>>m;
   int i[n];
for(int a=0;a<n;a++){
	cin>>i[a];
	
}
  for(int j=1;j<=m;j++){
  	cin>>x;
  		cout<<i[x-1]<<endl;
  }
  
 
  
  
return 0;	
}

数组练习
描述

给出一条长度为n的数组,接下来有m次提问,每次提问给出一个数x(x<=n),找出前x个数中的最大数。

输入

第一行两个数n,m(10<=n,m<=20000),分别表示数组长度和提问个数。第二行有n个数,保证每个数均为小于10000的正整数。接下来m行,每行一个数x。

输出

共m行,每行一个正整数。

输入样例 1

5 2
1 3 5 4 2
1
4
输出样例 1

1
5
来源

原创

#include<iostream>    	
using namespace std;
int main()		
{   int m,n,x,big;
   cin>>n>>m;
   int i[n];
for(int a=0;a<n;a++){
	cin>>i[a];
	
}
for(int k=1;k<=m;k++){
big=i[0]; 
cin>>x;
  for(int j=1;j<=x-1;j++){
  if(big<=i[j]){big=i[j];}	
  else{big=big*1;      }
  }
  cout<<big<<endl;
}
 

  
return 0;	
}
一、填空题(每空1分,共20分) 1. 不包含任何字符(长度为0)的串 称为空串; 由一个或多个空格(仅由空格符)组成的串 称为空白串。 (对应严题集4.1①,简答题:简述空串空格串的区别) 2. 设S=“A;/document/Mary.doc”,则strlen(s)= 20 , “/”的字符定位的位置为 3 。 4. 子串的定位运算称为串的模式匹配; 被匹配的主串 称为目标串, 子串 称为模式。 5. 设目标T=”abccdcdccbaa”,模式P=“cdcc”,则第 6 次匹配成功。 6. 若n为主串长,m为子串长,则串的古典(朴素)匹配算法最坏的情况下需要比较字符的总次(n-m+1)*m 。 7. 假设有二维数组A6×8,每个元素用相邻的6个字节存储,存储器按字节编址。已知A的起始存储位置(基地址)为1000,则数组A的体积(存储量)为 288 B ;末尾元素A57的第一个字节地址为 1282 ;若按行存储时,元素A14的第一个字节地址为 (8+4)×6+1000=1192 ;若按列存储时,元素A47的第一个字节地址为 (6×7+4)×6+1000)=1276 。 8. 〖00年计算机系考研题〗设数组a[1…60, 1…70]的基地址为2048,每个元素占2个存储单元,若以列序为主序顺序存储,则元素a[32,58]的存储地址为 9188 。 答:考虑0行0列,(58列×61行+32行)×2字节+基址2048=9188?? 9. 三元素组表中的每个结点对应于稀疏矩阵的一个非零元素,它包含有三个数据项,分别表示该元素 的 行下标 、 列下标 元素值 。 10.求下列广义表操作的结果: (1) GetHead【((a,b),(c,d))=== (a, b) ; //头元素不必加括号 (2) GetHead【GetTail【((a,b),(c,d))】】=== (c,d) ; …………………………
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值