2026年微软技术专家面试全攻略及答案.docxVIP

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

2026年微软技术专家面试全攻略及答案.docx

第PAGE页共NUMPAGES页

2026年微软技术专家面试全攻略及答案

一、编程题(共5题,每题10分,总分50分)

考察方向:算法设计、数据结构、编程能力

题目1:

问题描述:

给定一个非负整数数组`nums`,和一个正整数`k`,请设计一个算法,找出数组中和至少为`k`的最短子数组长度。如果不存在这样的子数组,返回0。

示例:

输入:`nums=[1,2,3,4,5]`,`k=11`

输出:3(子数组[4,5,2]的和为11,长度最短)

答案:

cpp

includevector

includedeque

usingnamespacestd;

intshortestSubarray(vectorintnums,intk){

intn=nums.size();

vectorlonglongprefix(n+1,0);//前缀和数组

for(inti=0;in;++i)prefix[i+1]=prefix[i]+nums[i];

dequeintdq;//双端队列,存储前缀和的下标

dq.push_back(0);

intres=n+1;

for(inti=1;i=n;++i){

//当前前缀和与前一个前缀和之差=k,更新结果

while(!d

文档评论(0)

1亿VIP精品文档

相关文档