You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在定长数组指定位置插入元素并右移挤出末尾元素

数组指定位置插入元素实现方案

实现思路

  • 首先确认插入位置:本次需求要在5和7之间插入元素,对应下标为1的位置(数组默认从0开始计数)
  • 因为原数组长度固定,插入后要挤掉末尾元素,不需要做数组扩容操作,直接从数组最后一位开始倒序遍历到插入位置的下一位,将前一个位置的元素赋值给当前位置,即可实现插入位置之后的元素整体右移
  • 最后把待插入的新元素赋值到目标插入位置即可得到最终结果

代码示例(Python)

# 初始化原数组
arr = [5, 7, 8, 9, 10]
# 待插入元素
insert_val = 6
# 目标插入位置
insert_pos = 1

# 倒序遍历完成元素右移
for i in range(len(arr) - 1, insert_pos, -1):
    arr[i] = arr[i - 1]

# 插入新元素
arr[insert_pos] = insert_val

print(arr) # 输出结果:[5, 6, 7, 8, 9]

代码示例(JavaScript)

// 初始化原数组
let arr = [5, 7, 8, 9, 10]
// 待插入元素
const insertVal = 6
// 目标插入位置
const insertPos = 1

// 倒序遍历完成元素右移
for (let i = arr.length - 1; i > insertPos; i--) {
    arr[i] = arr[i - 1]
}

// 插入新元素
arr[insertPos] = insertVal

console.log(arr) // 输出结果:[5, 6, 7, 8, 9]

逻辑说明

选择倒序遍历是为了避免正序遍历时,前面的元素提前覆盖还未完成移动的后面元素的问题,从后往前赋值可以保证每个被移动的元素在被覆盖前,已经完成了向右侧位置的赋值操作。整个实现只用了最基础的数组下标访问和for循环逻辑,没有调用任何封装好的插入类API。

内容的提问来源于stack exchange,提问作者Braum Holdren

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 16:24:04