我最近接受了采访,在那里我被问到以下算法问题.我无法找到O(n)解决方案,也无法找到谷歌的问题.
给定整数的数组A [a_0 ... a_(n-1)](+ ve和-ve).形成一个数组M [m_0 ... m_(n-1)],其中m_0 = 2,m_i在[2,...,m_(i-1)+1]中,使得产品总和最大,即我们必须最大化a_0*m_0 + a_1*m_1 + ... + a_(n-1)*m_(n-1)
例子
input {1,2,3,-50,4}
output {2,3,4,2,3}
input {1,-1,8,12}
output {2,3,4,5}
Run Code Online (Sandbox Code Playgroud)
我的O(n ^ 2)解决方案是从m_0 = 2开始并且只要a_i是+ ve就继续递增1.如果a_i <0,我们必须考虑从2到m_i-1 + 1的所有m_i,并查看哪一个产生产品的最大总和.
请建议线性时间算法.
当针对在AWS等云上部署的大型系统使用SOA时,可以使用两种方法进行服务交互。
将每个服务群集放在内部Elb后面。客户端与相应的elb建立连接池,而elb进行循环平衡。
使用netflix eureka之类的服务发现方法。
当前,我们正在使用第一种方法,其中每个服务群集都位于内部elb后面,并且客户端通过elb进行通信,因此每个客户端实例仅需维护1个池,即与elb端点。
对于第二种方法,我有以下疑问。
在以上两个问题上需要输入/建议。