360企业安全的那套威力题,为什么AC不了

360企业安全的那套威力题,需要考虑什么特殊情况吗?为什么AC不了
#include <iostream>
#include <vector>
#include <string>
#include <queue>
#include <deque>
#include <tuple>
#include <stack>
#include <set>
#include <unordered_set>
#include <map>
#include <unordered_map>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <climits>
#include <ctime>
#include <cstring>
#include <cctype>
#include <iomanip>
#include <numeric>

using namespace std;

typedef long long LL;
typedef unsigned long long ULL;
int Query_min(int *A, int a, int b){
int min_num=A[a];
for (int i = a+1; i <=b; i++){
if (min_num > A[i]){
min_num = A[i];
}
}
return min_num;

}
int Query_max(int *A, int a, int b){
int max_num = A[a];
for (int i = a + 1; i <= b; i++){
if (max_num < A[i]){
max_num = A[i];
}
}
return max_num;

}
int main()
{
LL n;
cin >> n;
int *a = new int[n];
int *l = new int[n];
for (int i = 0; i<n; i++){
cin >> a[i];
l[i] = i + 1;
}
int *b = new int[n];
int *r = new int[n];
for (int i = 0; i<n; i++){
cin >> b[i];
r[i] = (i + 1) - b[i] + 1;
}

for (int i = 0; i < n; i++){
int n1 = l[i];
int n2= r[i];
if (n1 > n2){
int temp = n1;
n1=n2;
n2 = temp;
}
int t = Query_min(a, n1-1, n2-1)*Query_max(a,n1-1,n2-1);
cout << t << endl;
}
system("pause");
return 0;
}

#笔试题目#
全部评论
好多选择题没get懂出题者的意思...
点赞 回复 分享
发布于 2018-09-16 21:26
经常笔试,经常写不出来。GG
点赞 回复 分享
发布于 2018-09-16 20:30
看到这个头文件,我有点害怕😨
点赞 回复 分享
发布于 2018-09-16 20:26
直接暴力确实是17%,感觉一开始算出全部的范围内的最大最小值应该时间复杂度会低一点吧,最近脑袋有点懵结束前突然想到的,有大佬A了的么。。。
点赞 回复 分享
发布于 2018-09-16 20:18
拿到32赢,谁先数到几就赢得选择题,如何做?我菜,根本想不出思路,有哪个说一下思路
点赞 回复 分享
发布于 2018-09-16 20:18
同思路,同A不了,表示一脸懵逼
点赞 回复 分享
发布于 2018-09-16 20:12
import java.util.*; public class Main {     public static void main(String[] args) {         Scanner in = new Scanner(System.in);         while (in.hasNext()) {             int n = in.nextInt();             int[] A = new int[n];             int[] B = new int[n];             for(int i = 0; i < n; i++){                 A[i] = in.nextInt();             }             for(int i = 0; i < n; i++){                 B[i] = in.nextInt();             }             for(int i = 0; i < n; i++){                 int[] min = new int[B[i]];                 int[] max = new int[B[i]];                 int index = i - B[i] + 1;                 min[0] = A[index];                 max[0] = A[index];                 int flag = 1;                 for(int j = index + 1; j < index + B[i]; j++){                     if(A[j] < min[flag - 1]){                         min[flag] = A[j];                         max[flag] = max[flag - 1];                     }else{                         max[flag] = A[j];                         min[flag] = min[flag - 1];                     }                     flag ++;                 }                 System.out.println(max[max.length - 1] * min[min.length - 1]);             }         }     } }
点赞 回复 分享
发布于 2018-09-16 20:09
这道题到底是什么意思。。。。我完全没读懂题目。。。到底要求啥。。
点赞 回复 分享
发布于 2018-09-16 20:06
我的是时间超时 ,没来得及优化
点赞 回复 分享
发布于 2018-09-16 20:06

相关推荐

头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务