给你一个很大的范围[a,b],其中'a'和'b'通常在1到4,000,000,000之间.您必须找出给定范围内所有数字的XOR.
TopCoder SRM中使用了此问题.我看到了比赛中提交的一个解决方案,我无法弄清楚它是如何工作的.
有人可以帮助解释获胜的解决方案:
long long f(long long a) {
long long res[] = {a,1,a+1,0};
return res[a%4];
}
long long getXor(long long a, long long b) {
return f(b)^f(a-1);
}
Run Code Online (Sandbox Code Playgroud)
这里,getXor()是计算传递范围[a,b]中所有数字的xor的实际函数,"f()"是辅助函数.
我在一个网站上遇到过这个问题.正如那里提到的那样,在亚马逊的采访中被问到了.在给定的约束条件下,我无法找到合适的解决方案.
给定一个n整数数组,找到3个元素,a[i] < a[j] < a[k]并i < j < k在O(n)时间内.
我有一个常见的情况:我有一个场景,其中对象创建由构建器处理.例如
Class Client; // Creates a builder object.
Class Builder; // Can be used to set the desired params and then invoke build on it to return Service object.
e.g.-
client.createBuilder().withDefaultBinding(new StandardBinder())
.withDefaultMetricsFactory(new StandardMetricsFactory())
.withCacheSolution(cacheSolution)
.build();
Run Code Online (Sandbox Code Playgroud)
但是,Builder没有标准的setter.它执行一些任务,然后将结果设置为Builder的内部对象,因此不能将它们视为属性.
我读过:Spring:使用builder模式创建一个bean
我想调用构建器以使用Spring XML配置完全检索最终对象.我不想自己创建一个工厂 - 我想知道是否有一种方法可以使用开箱即用的Spring XML配置来生成上述场景中的服务对象?我对Spring的理解给我的印象是,这可以通过在构建器对象上调用一组setter方法(不显式设置属性)并最终调用构建来获取服务对象来完成.如果可能的话,它将如何实现?