思路挺简单 就是数的格式和超时改了一会儿

//思路不难 也很直接 就是这个思路容易超时 记得要用引用来节省时间

#include <stdio.h>

#include <vector>

using namespace std;

long long change(vector<long long>&v,int i){

if(v[i]>v[i-1]&&v[i]>v[i+1])return v[i-1]<v[i+1]?v[i+1]:v[i-1];

else return v[i];

}

int main(){

int t;

scanf("%d",&t);

while(t--){

int n;

scanf("%d",&n);

vector<long long> v;

for(int i=0;i<n;i++){

long long temp ;

scanf("%lld",&temp);

v.push_back(temp);

}

for(int i =1;i<(v.size()-1);i++){

v[i] = change(v,i);

}

for(int i =0;i<v.size();i++){

printf("%d ",v[i]);

}

printf("\n");

v.clear();

}

return 0;

}

全部评论

相关推荐

02-11 14:29
已编辑
字节跳动_QA
Edgestr:这种的写代码最狠了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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