微软校招笔试8.25
第一题 输入int N, N至少两位,至少包含一个数字5, eg. 1345
求 删除其中一个5以后能够得到的最大数字是多少。
eg. -315135 --> -31135, 15950 -> 1950
我的解法:遍历获取‘5’的index,求删除5后得到的数值,求最大
第二题 输入数组A[], 求共有多少个区间(p,q)使得 A[p] + A[p+1]....A[q] = 0
if result>1000000000 return -1
解法: 前缀和+hashmap,遇到相同前缀和,也就获得了sum0区间
第三题 输入数组 记录一维位置A[], 求有多少个平稳速度区间,
平稳速度区间定义:至少包含连续三个位置,满足等差, eg. 1,2,3 --> 1个 或 9,7,5,3 --> 3个
if result>1000000000 return -1
一维dp做的感觉复杂度太高,求大佬指教。