微软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-15 09:23
已编辑
深圳技术大学 Java
德勤 后端 OC 实习140/天,转正税前7k
恶龙战士:不如码农烧烤
点赞 评论 收藏
分享
01-24 12:50
门头沟学院 C++
投票
菜狗二号:还有啥想的 指定国有行啊,去了就开始幸福美满的生活了,选华子不是折腾自己么,最终财富积累度是差不多的,但是幸福指数是相差甚远的
点赞 评论 收藏
分享
评论
3
13
分享

创作者周榜

更多
牛客网
牛客企业服务