当前位置: 面试刷题>> 插入5 (经典算法题500道)


### 完整题目描述 **题目**: 插入数字5 给定一个已排序的数组(升序),请在不使用额外数组空间的情况下,将数字5插入到数组中,并保持数组的有序性。如果数组中存在数字5,则不需要插入,直接返回原数组。请分别用PHP、Python、JavaScript实现这一功能。 ### 示例 **输入**: `[1, 3, 4, 6, 8]` **输出**: `[1, 3, 4, 5, 6, 8]` 如果输入数组中包含5: **输入**: `[1, 3, 4, 5, 6, 8]` **输出**: `[1, 3, 4, 5, 6, 8]`(保持不变) ### PHP 示例代码 ```php function insertFive($arr) { $n = count($arr); $found = false; // 检查数组中是否已存在5 for ($i = 0; $i < $n; $i++) { if ($arr[$i] == 5) { $found = true; break; } } // 如果不存在,则在适当位置插入5 if (!$found) { $arr[] = 5; // 默认插入到数组末尾 $inserted = false; for ($i = $n - 1; $i >= 0 && !$inserted; $i--) { if ($arr[$i] > 5) { $arr[$i + 1] = $arr[$i]; // 向后移动元素 } else { $arr[$i + 1] = 5; // 插入5 $inserted = true; } } } return $arr; } // 测试 $arr = [1, 3, 4, 6, 8]; $result = insertFive($arr); print_r($result); ``` ### Python 示例代码 ```python def insert_five(arr): if 5 not in arr: arr.append(5) # 默认添加到末尾 i = len(arr) - 2 while i >= 0 and arr[i] > 5: arr[i + 1] = arr[i] i -= 1 arr[i + 1] = 5 return arr # 测试 arr = [1, 3, 4, 6, 8] result = insert_five(arr) print(result) ``` ### JavaScript 示例代码 ```javascript function insertFive(arr) { if (!arr.includes(5)) { arr.push(5); // 默认添加到末尾 for (let i = arr.length - 2; i >= 0 && arr[i] > 5; i--) { arr[i + 1] = arr[i]; // 向后移动元素 } arr[i + 1] = 5; // 插入5 } return arr; } // 测试 let arr = [1, 3, 4, 6, 8]; let result = insertFive(arr); console.log(result); ``` ### 码小课网站分享 码小课网站中有更多关于算法和数据结构的内容分享,涵盖了从基础到进阶的各种知识点和实战案例,非常适合学习和提升编程技能。欢迎访问码小课网站,与众多编程爱好者一起学习和进步!
推荐面试题