2026年华为技术部面试题集.docxVIP

  • 0
  • 0
  • 约4.16千字
  • 约 13页
  • 2026-03-19 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年华为技术部面试题集

一、编程基础题(3题,每题20分,共60分)

1.数组旋转问题

题目:给定一个数组,将数组中的元素向右旋转k次。例如,输入数组[1,2,3,4,5,6,7],k=3,输出[5,6,7,1,2,3,4]。

请编写一个函数实现该功能,要求时间复杂度为O(n),空间复杂度为O(1)。

答案:

python

defrotate(nums,k):

n=len(nums)

k=k%n

defreverse(nums,start,end):

whilestartend:

nums[start],nums[end]=nums[end],nums[start]

start+=1

end-=1

reverse(nums,0,n-1)

reverse(nums,0,k-1)

reverse(nums,k,n-1)

returnnums

解析:该题考察数组操作和算法设计能力。通过三次反转实现数组旋转:首先反转整个数组,然后反转前k个元素,最后反转剩余元素。这种方法只需要O(n)的时间复杂度和O(1)的空间复杂度。

2.链表反转

题目:反转一个单链表。例如,输入1-2-3-4-5-NULL,输出5-4-3-2-1-NULL。

请编写一个函数实现该功能,并返回反转后的链表

文档评论(0)

1亿VIP精品文档

相关文档