- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
两个数组 X 和 Y 的相似度数,每个数组的大小为 N,定义为索引对 (i,j) 的数量,使得 X[i]=Y[j] ,对于 1<=i,j
现在给定两个数组,大小为 N 和 M。我们需要从这两个数组中找到大小相等的子数组的数量,使得每个子数组对的相似数大于或等于给定数字 K。
例如,假设我们有 N=3、M=3、K=1 并且数组是 [1,3,4] 和 [1,5,3] 那么这里的答案是 6
解释:
({1},{1})
({3},{3})
({1,3},{1,5})
({1,3},{5,3})
({3,4},{5,3})
({1,3,4},{1,5,3})
所以 ans = 6
如何解决给定大小为 N、M 和给定整数 K 的数组。元素个数不能超过2000个,K也小于N*M
方法:从大小为 N 的数组 1 中形成所有子数组,这些子数组将为 N*(N+1)/2 并且对于大小为 M 的数组 2 相同。然后尝试找到每个子数组对之间的相似度数。但这是非常未优化的方式。有什么更好的方法可以解决这个问题?我认为动态规划可以用来解决这个问题。有什么建议吗?
对于 {1,1,2} 和 {1,1,3} 和 K=1
{[1(1)],[1(1)]}
{[1(1)],[1(2)]}
{[1(2)],[1(1)]}
{[1(2)],[1(2)]}
{[1(1),1(2)],[1(1)]}
{[1(1),1(2)],[1(2)]}
{[1(1)],[1(1),1(2)]}
{[1(2)],[1(1),1(2)]}
{[1(1),1(2)],[1(1),1(2)]}
{[1(2),2],[1(2),3]}
{[1(1),1(2),2],[1(1),1(2),3]}
最佳答案
由于比赛已经结束,为了完整起见,这里是我对那里的编辑答案的理解(我从中学到了很多东西)。假设我们有一个 O(1)
time 方法计算两个连续子数组的相似性,每个子数组一个,长度为 l
.然后,对于每对索引,(i, j)
,我们可以二分查找最小的 l
(延伸,说到他们的左边)满足相似性k
. (一旦我们有了最小的 l
,我们就知道任何更大的 l
也有足够的相似性,我们可以在 O(1)
时间内添加这些计数。)在这种情况下,总时间将是 O(M * N * log(max (M,N))
.
好吧,事实证明有一种方法可以计算 O(1)
中两个连续子数组的相似度。 :矩阵前缀和。在矩阵中,A
;其中每个条目,A(i,j)
, 是 1
如果第一个数组的 i
第 th 个元素等于第二个数组的 j
第元素和 0
否则; A
中元素的总和在矩形中A(i-l, j-l)
, A(i,j)
(从左上角到右下角)就是这样。我们可以在 O(1)
中计算该总和给定O(M*N)
矩阵前缀和的时间预处理。
关于arrays - 计算相似度数大于 K 的子数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47856738/
我想知道当动画结束或被中断时如何在旋转动画中获取当前角度/度数? 我的想法是当点击某个按钮时动画被打断时,旋转将逆时针方向(当前流向是顺时针方向),从被打断时的最后一个角度/度开始。 我试过使用 ap
我正在尝试使用 TYPE_ACCELEROMETER 传感器获取手机角度。我的目标是仅在手机倾斜后获取角度值。它有效,但问题是当我 Handlebars 机正面朝上放在 table 上时,它仍然说 i
以下代码显示为问号而不是度数符号: var airF = Math.round(Number(MDTMOBILE.RWISWeather[i].AirTemp)) + "\u00B0" + "F";
我使用 css 3D-transform rotateY 翻转带有 css transition 的 div。我希望图像翻转一定次数:当转换结束时,我再次触发它直到达到某个计数器值。 我想做什么:当
我正在开发一个 map 应用程序的插件,它有很多类,有大量的单位选项。我觉得我在维护模型内的顺序方面有很好的处理能力。例如,Angle 类具有 Degrees 和 Radians 的属性并自动相互更新
我有一个栅格,是从 netcdf 中获得的(Lambert Conic Conformal projection): library(meteoForecast) wrf_tempor
我在 mapView 的叠加层上有一组项目。 我知道大多数对象的顶部/底部/左侧/右侧位置。 我想使用 zoomToSpan() 方法来放大该区域。 用这种方法计算纬度/经度的正确方法是什么? 最佳答
给你一个具有 100 万个顶点的最大度数为 4 的简单图。 我们想找到一个最大独立子集。 一般情况下是NP难的。 度数最大为 4 的事实是否提供了计算它的有效解决方案? 最佳答案 进一步阅读维基百科页
我是一名优秀的程序员,十分优秀!