我有两个号码P
和K
。我有一个A
个N
整数的数组。我想找到最小数A[i]
,它只满足abs(A[i]-P) <= K
0 <= i < N
所在的属性A
。
给出O(N)
已排序。
最初,我想到了O(logN)
方法。但我认为可以通过二进制搜索将其优化为<form id="submitdate" action="/date" method="POST">
<b>Date:</b> <input type="text" id="datepick" name="datepick" placeholder="Select Date">
</form>
。但我不知道如何继续前进。
答案 0 :(得分:1)
使用此:
for(i=0; i<=n; i++)pre[i]=0;
for(i=1; i<=n; i++)
{
pre[i]=pre[i-1];
if(s[i-1]=='1')pre[i]++;
}
for(i=1; i<=n; i++)
{
if(s[i-1]=='0')continue;
ans += pre[min(n,i+k)]-pre[max(0ll,i-k-1)];
}
LL gc=gcd(ans,n*n);
cout << ans/gc << "/" << (n*n)/gc << endl;
答案 1 :(得分:1)
尝试以下逻辑:
SKScene* myScene =[[GameScene alloc]initWithSize:self.size];
myScene.scaleMode = SKSceneScaleModeAspectFill; // Use here the value you used in the view controller when creating the scene for the first time
使用二进制搜索的最小数字索引(如果找不到,请继续>= abs(P-K)
的最小数字索引,如果没有找到,那么就没有这样的数字。我认为<= (P+K)
。