2026年华为软件开发工程师面试题详解.docxVIP

  • 3
  • 0
  • 约7.24千字
  • 约 20页
  • 2026-04-07 发布于福建
  • 举报

2026年华为软件开发工程师面试题详解.docx

第PAGE页共NUMPAGES页

2026年华为软件开发工程师面试题详解

一、编程基础与数据结构(共5题,总分20分)

1.题目(4分):

请实现一个函数,输入一个正整数n,返回n的平方根的整数部分。要求不使用库函数,时间复杂度不超过O(logn)。

答案与解析:

cpp

intmySqrt(intn){

if(n==0)return0;

longleft=1,right=n/2,ans=0;

while(left=right){

longmid=left+(right-left)/2;

if(midmid=n){

ans=mid;

left=mid+1;

}else{

right=mid-1;

}

}

returnans;

}

解析:

采用二分查找法,逐步缩小平方根的范围。初始区间为[1,n/2],每次取中间值mid,判断mid2是否小于等于n。若成立,则更新答案并移动左边界;否则移动右边界。二分查找的时间复杂度为O(logn),符合要求。

2.题目(4分):

给定一个包含重复元素的数组nums,返回其所有不重复的全排列。例如,输入[1,1,2],返回[[1,1,2],[1,2,1],[2,1,1]]。

答案与解析:

cpp

vectorvectori

文档评论(0)

1亿VIP精品文档

相关文档