微软0825笔试

第一题:去除数字中的一个5,使得数字最大。

样例:
  • n = 15958, return 1958
  • n = -5859, return -589
  • n = -5000, return 0
数据范围[-999995, 999995],且一定含有至少一个5。评估只看正确性,不看性能。
思路:暴力枚举,n最大才10万, 枚举也才5个数。先记录符号,然后枚举去除5的所有可能。
虽然是暴力枚举,但时间和空间复杂度O(lg(n))。随着n的位数增长。

第二题,leetcode560,k为0的情况。

思路:前缀和,然后求和。时间和空间复杂度都是O(n)。

第三题,求等差数列的个数,最少连续三个。

样例:
  • A = [-1, 1, 3, 3, 3, 2, 3, 2, 1, 0],return 5。有五个区间是等差
  • (1) [-1, 1, 3] 差为2
  • (2) [3, 3, 3] 差为0
  • (3) [3, 2, 1, 0] 差为1
  • (4) [3, 2, 1]
  • (5) [2, 1, 0]
思路:双指针确定等差区间,区间长度为3,则区间个数为1; 区间长度为4,则区间个数为(4 - 1)*(4 - 2)/2 == 3;可知区间长度为k时, 区间个数为(k - 1)*(k - 2)/2。
时间复杂度O(n),空间复杂度O(1)。

求求大家的点赞和收藏了。
想要原题截图的可以私信我。
#校招##秋招##微软#
全部评论
暴力枚举时间复杂度怎么会是O1呢
1 回复 分享
发布于 2022-08-26 01:09 广东
不应该是周五么?怎么是8-25呢?
点赞 回复 分享
发布于 2022-08-26 11:30 美国

相关推荐

02-12 20:22
重庆大学 Java
字节暑期刚入职四天,因为是年前,所以很多正职都放假走了,也就没有给我分配mt,然后有一个老哥在我来的时候给我发了一个landing手册,然后还有关于部门业务的白皮书,还有一些业务代码。然后本人是java面的,进来第一次接触go语言 前面几天熟悉了一下go的语法和go的框架,可以读但是还不太会写,然后业务白皮书也看的很头疼,包括landing手册里要了解的很多东西说实话我看文档真的快看死了,一个嵌套一个,问题是我还完全不知道咋用这个我了解的东西,还有就是那个项目代码,那个老哥喊我去写写单测,熟悉一下go的语法,但也进行的很困难(这是我第一段实习,之前都是springboot那一套,真不太熟悉这个)想问问大家的建议,就是我从现在开始到在开年回来之前应该做些什么,我目前就一个想法 就是复现一个landing手册上的go框架小项目 就是相当于帮自己锻炼锻炼怎么写go 或者各位大佬有没有更好的锻炼go语法的建议还有就是大家都在说vibe coding,那我应该怎么锻炼自己使用ai的能力,感觉我除了给一些需求然后它给我生成代码,好像就没别的用法了,那些什么工作流、拆解、skill啥的都不知道从哪一个地方开始,包括我现在正在实习,不知道精力该怎么分配,去网上想找找关于agent开发的一些学习流程,说实话,众说纷纭,有的是从python开始打基础然后系统学那些rag prompt langchain mcp等等,有的是说直接找一个github上的ai项目然后反复问ai,我确实有点迷茫,恳求各位大佬能留下你们宝贵的建议,我一定认真反复深刻学习有一说一 我觉得字节饭挺好吃的!
双非后端失败第N人:1. go语言我建议你让ai带着你先把基本语法速通了,然后再去用go重新刷你以前刷过的leetcode,这样熟悉起来很快 2. 直接看你们组go项目,里面用***比较复杂,然后把每一个语法现象都喂给ai,一点点看
字节跳动公司福利 1371人发布
点赞 评论 收藏
分享
评论
3
13
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务