java中数组插入元素

问题描述

已知有个升序的数组,要求插入一个元素,该数组顺序依然是升序,
//比如:[10,12,45,90],添加23后,数组为[10,12,23,45,90]


解决方案:

//思路 数组扩容 + 定位
//1.我们先确定 添加数应该插入到哪个索引
//2.然后扩容

//先定义原数组
		int[] arr = {10,12,45,90};
		int insertNum = 23;
		int index = -1;//index就是要插入的位置

		//遍历 arr数组,如果发现insertNum <= arr[i],说明i就是要插入的位置
		//使用 index 保留 index = i;
		//如果遍历完后,没有发现 insertNum <= arr[i],说明index = arr.length
		//即:添加到arr的最后
		
		for (int i = 0;i < arr.length ;i++ ) {
			if (insertNum <= arr[i]) {
				index = i;
				break;//找到位置后,就退出
			}
		}

		//判断
		if (index == -1) {//说明没有找到位置
			index = arr.length;
		}

		//先创建一个新的数组,大小arr.length + 1
		int[] arrNew = new int[arr.length + 1];
		//将arr的元素拷贝到arrNew,并且要跳过index位置
		
		for (int i = 0,j = 0;i < arrNew.length ;i++ ) {
			
			if (i != index) {//说明可以把arr的元素拷贝到arrNew
				arrNew[i] = arr[j];
				j++;
			} else {//i这个位置就是要插入的数
				arrNew[i] = insertNum;
			}
		}
		arr = arrNew;
		for (int i = 0;i < arr.length ; i++) {
			System.out.print(arr[i] + " ");
		}
		System.out.println("index=" + index );

运行结果如下:

在这里插入图片描述

原文链接:https://www.bilibili.com/video/BV1fh411y7R8?p=187

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值