题解 | #有序序列插入一个整数#
有序序列插入一个整数
https://www.nowcoder.com/practice/444e87f938464906a1649cff236b102b
#include <iostream>
using namespace std;
int main() {
int n;
cin>>n; //输入整数n
int a[n];
for(int i=0;i<n;i++){ //将n个整数存入数组
cin>>a[i];
}
int b;
cin>>b; //输入想要插入的数
int flag=1; //限制第一次(后面有解释)
//考虑两种情况,一种:插入的数最大,如:1 2 3 4 5 ?,插入6
//一种:插入的数在中间,如1 2 ?4 5 6,插入3
for(int i=0;i<n;i++){
if(b<a[i] && flag==1){ //第二种情况,插入3,3比4小,且是第一次小,输出3 4
printf("%d %d ",b,a[i]);
flag=0; //之后就不满足if条件了,跳到else,输出后面的数
}
else {
printf("%d ",a[i]);
}
}
if(flag==1) //第一种情况,插入6,比到最后,后面没数了,最大,直接输出
printf("%d ",b);
return 0;
}
OPPO公司福利 1274人发布