最近实验室师兄找工作,今天帮师兄做了一道亚马逊中国的在线笔试题。说的是Symmetric Number(对称数字),即给定一个数字,获取大于它且最接近它的对称数字。 例如,123对应131,12321对应12421。正常要求是C语言实现,可惜本人习惯于JAVA,所以用JAVA写了一段代码,测试通过。代码如下: public class SymmNum {pu
This way 题意: 给你一个数组,每次问你在区间l,r中a[l]%a[l+1]%a[l+2]%…a[r]是多少。 题解: 用线段树就好了,每次查询这个区间内第一个小于等于当前余数的值即可。为什么这样是对的。 首先是时间复杂度的问题,假设a>=b,a%b=c,那么c<=a/2恒成立。所以时间复杂度是 O ( n l o g n 2 ) O(nlogn^2) O(nlogn2)。 接下来