小米面试题及答案.docx

  1. 1、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。。
  2. 2、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  3. 3、文档侵权举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

小米面试题及答案

问题1:给定一个整数数组nums和一个整数k,找出数组中和至少为k的最短非空子数组的长度。如果不存在这样的子数组,返回-1。要求时间复杂度不超过O(n)。

答案:这道题可以用前缀和结合单调队列的方法解决。首先计算前缀和数组preSum,其中preSum[i]表示前i个元素的和(preSum[0]=0)。我们需要找到ij,使得preSum[j]-preSum[i]≥k,且j-i最小。为了快速找到满足条件的i,维护一个单调递增的双端队列,队列中保存的是可能的i的索引。遍历j时,首先移除队列中所有preSum[j]-preSum[队首]≥k的元素,因为随着j增大,后续的j更大,

文档评论(0)

173****0318 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档