题目:已知有个升序的数组,要求插入一个元素,该数组顺序依然是升序,比如:[10,12,45,90],添加23后,数组为[10,12,23,45,90];
public class test {
public static void main(String args[]) {
int[] arr = { 10, 12, 45, 90 };
int insertNum = 23;
int index = -1;
// 找出要插入数据的下标位置
for (int i = 0; i < arr.length; i++) {
if (insertNum <= arr[i]) {
index = i;
break;
}
}
if (index == -1) {
index = arr.length;
}
// 扩容(新数组)
int[] arrNew = new int[arr.length + 1];
for (int i = 0, j = 0; i < arrNew.length; i++) {
if (i != index) {
arrNew[i] = arr[j];
j++;
} else {
arrNew[i] = insertNum;
}
}
// 遍历
for (int i = 0; i < arrNew.length; i++) {
System.out.print(arrNew[i] + "\t");
}
}
}
画图便于理解:
输出答案:
10 12 23 45 90