第二题 计算相邻两个点的位移量绝对值diff O(n) 求每个diff需要的步数step,数学方法可解,直接求diff对应的步数 O(k) k < n 累加全部step O(n) 数学方法 步数 diff 0 0 1 1 1 2 1 2 3 1 3 1 2 3 4 2 0 所有<=4 偶数 4 1 2 3 4 10 8 6 ... 所有<=10 偶数 5 1 2 3 4 5 15 13 11 ... 所有<=15 奇数 6 1 2 3 4 5 6 21 19 17 ... 所有<=21 奇数 ... f(0) f(1) f(2) f(3) f(4) f(5) f(6) ... 偶 奇 奇 偶 偶 奇 奇 ... 根据 diff <= 1+2+3+...+x = x*(x+1)/2 得 x>=sqrt(diff+1/4)-1/2 利用diff奇偶性在[x,x+3]之间找第一个具有相同奇偶性的数就是所求的步数
点赞 评论

相关推荐

11-18 09:44
Java
小白也想要offer:简历别放洋屁,搞不还还放错了,当然你投外企除外,以上纯属个人观点
点赞 评论 收藏
分享
牛客网
牛客企业服务