【发布时间】:2021-06-07 16:56:27
【问题描述】:
在数组中找到等于特定元素的下一个索引和数组中也等于特定元素的前一个索引?
让我们举个例子:给定数组是(数组将只包含元素 5,0 和 6)
5 0 5 5 0 0 5 0 0 0 0 0 6 6 6 0 0 6 0 6 5 5 0
如果我们采用任何索引,例如 8,其中包含零。对于该索引,下一个元素 6 位于索引 12,最后一个元素 5 位于索引 6。类似地,让我们采用索引 2。对于该索引,下一个元素 6 位于索引 12 处,最后一个元素 5 位于索引 2 处。
我的方法:
-
我使用了 countfives 数组,它存储 5 的索引,countsixes 存储 6 的索引。它的使用方式是,如果任何索引包含 5,则 countfives 存储它,如果下一个索引存储零,则 countfives[i] =计数[i-1]。对我最后 5 个和下一个 6 的每个索引都使用它。
-
我使用二分查找查找下一个 6 和最后一个 5 的索引。
有什么方法可以更优化地做到这一点?
【问题讨论】:
标签: arrays binary-search