贺州学院ivy


私信TA

用户名:Livy

访问量:1988

签 名:

好好学习,天天向上,汝何秀?

排  名 28
经  验 5507
参赛次数 5
文章发表 25
年  龄 0
在职情况
学  校 贺州学院
专  业 软件工程

  自我简介:

假猪套天下第一

解题思路:


看题目也应该看懂的,输入n个数字,有q次查找,每一次查找 [i,j]区间的最大数字



注意事项:

使用求最大值和交换函数包含在这两个头文件里面

#include<algorithm>

#include<functional>

a[n]数组的下标位置
查找a[0]-a[n-1]的最大值
*max_element(a, a+n)  返回值是指针类型的,返回是最大值的下标的地址,需要加*,才能取数值


交换函数 : swap(数据类型 a,数据类型 b)

交换a和b的数值



参考代码:

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<math.h>
#include<string>
#include<algorithm>
#include<functional>
using namespace std;
int main(){
 int n,i,j;
 int a[1200];
 cin >> n;
 for (int m1 = 1; m1 <= n; m1++)scanf("%d", &a[m1]);
 int q;
 scanf("%d", &q);
 for (int m = 1; m <= q; m++){
  scanf("%d%d", &i, &j);
  if (i > j)swap(i, j);
  if (i == j)cout << a[i] << endl;
  else printf("%d\n", *max_element(a + i, a + j + 1));
 }
 return 0;
}


  评论区