腾讯数组面试题及详细答案.docxVIP

  • 0
  • 0
  • 约8.52千字
  • 约 9页
  • 2026-06-26 发布于河北
  • 举报

腾讯数组面试题及详细答案

说明:题目均为腾讯校招/社招高频真题,涵盖基础概念、核心操作、进阶算法,答案按照面试现场答题逻辑编写,不堆砌冗余内容,兼顾正确性和易懂性,代码以Java为主(腾讯后端/客户端常用),部分题目补充思路延伸,贴合实际面试场景。

一、基础必考题(笔试/一面高频)

题1:合并两个有序数组(原地合并,腾讯一面必出)

题目:给你两个非递减排序的整数数组nums1和nums2,其中nums1的长度为m+n,前m个元素为有效元素,后n个元素为0(作为预留空间),nums2的长度为n。请将nums2合并到nums1中,使合并后的nums1仍然保持非递减排序,要求原地操作,不能新建额外数组。

示例:输入nums1=[1,2,3,0,0,0],m=3,nums2=[2,5,6],n=3→输出nums1=[1,2,2,3,5,6]

答案解析:

核心思路:如果从前往后合并,会覆盖nums1中未处理的有效元素,所以采用「从后往前双指针」策略,利用nums1尾部的预留空位,避免元素覆盖,同时减少移动次数。

步骤:

定义三个指针:p1(指向nums1有效元素末尾,即m-1)、p2(指向nums2末尾,即n-1)、writePos(指向nums1最终末尾,即m+n-1);

循环比较p1和p2指向的元素,将更大的元素放到writePos位置,然后对应指针和wr

文档评论(0)

1亿VIP精品文档

相关文档