海信集团技术部研发工程师面试题含答案.docxVIP

  • 0
  • 0
  • 约7.45千字
  • 约 22页
  • 2026-02-14 发布于福建
  • 举报

海信集团技术部研发工程师面试题含答案.docx

第PAGE页共NUMPAGES页

2026年海信集团技术部研发工程师面试题含答案

一、编程语言与数据结构(共5题,每题10分,总分50分)

1.题目:

请用C++实现一个函数,输入一个无重复元素的整数数组,返回其所有可能的全排列。要求:不使用库函数,手动实现递归算法。

答案:

cpp

includevector

includeiostream

voidbacktrack(std::vectorintnums,std::vectorstd::vectorintres,std::vectorboolused,std::vectorintpath){

if(path.size()==nums.size()){

res.emplace_back(path);

return;

}

for(inti=0;inums.size();++i){

if(used[i])continue;

used[i]=true;

path.emplace_back(nums[i]);

backtrack(nums,res,used,path);

path.pop_back();

used[i]=false;

}

}

std::vectorstd::vectorintpermute(std::vectorintnums){

std::vectorstd::vectorintres;

std::vectorboolused(nums.size(),false);

std::vectorintpath;

backtrack(nums,res,used,path);

returnres;

}

intmain(){

std::vectorintnums={1,2,3};

autores=permute(nums);

for(constautoperm:res){

for(intnum:perm){

std::coutnum;

}

std::cout\n;

}

return0;

}

解析:

-使用回溯算法,通过`used`数组记录每个数字是否已使用,避免重复。

-每次递归时,选择一个未使用的数字加入`path`,并标记为已使用,继续递归。

-当`path`长度等于输入数组长度时,记录当前排列。

-递归结束后,撤销选择(回溯),继续尝试其他排列。

2.题目:

请解释快速排序的时间复杂度,并说明如何优化其最坏情况下的性能。

答案:

-时间复杂度:

-平均情况:O(nlogn),每次分区将数组分为大致相等的两部分。

-最坏情况:O(n2),当分区不平衡时(如已排序数组),每次只减少一个元素。

-优化方法:

-随机化选择基准:随机选择一个元素作为基准,降低最坏情况概率。

-三数取中法:取头、中、尾三个数的中位数作为基准。

-尾递归优化:优先处理较小的分区,减少递归深度。

解析:

快速排序依赖分区操作,分区越平衡,效率越高。通过随机化或三数取中法,可避免最坏情况。尾递归优化可减少栈空间消耗。

3.题目:

请实现一个LRU(最近最少使用)缓存,支持get和put操作。要求:使用哈希表+双向链表实现,时间复杂度O(1)。

答案:

cpp

includeunordered_map

includelist

classLRUCache{

private:

intcapacity;

std::unordered_mapint,std::pairint,std::listint::iteratorcache;

std::listintkeys;

voidmakeRecentlyUsed(intkey){

if(cache.find(key)!=cache.end()){

keys.erase(cache[key].second);

keys.emplace_front(key);

cache[key].second=keys.begin();

}

}

public:

LRUCache(intcapacity_):capacity(capacity_){}

intget(intkey){

if(cache.find(key)==cache.end())return-1;

makeRecentlyUsed(key);

returncache[key].first;

}

voidput(intkey,intvalue){

if(cache.find(key)!=cache.end()){

cache[key].first=

文档评论(0)

1亿VIP精品文档

相关文档