【发布时间】:2023-03-12 18:25:02
【问题描述】:
我对算法世界很陌生,并不了解一切,所以我不得不问一些问题,最近我遇到了一个有趣的问题。作为我的任务,我正在开发一个程序,该程序必须计算数组中所有出现的数字,即 array[6] = {1, 2 , 2, 2, 3 ,3 };用户询问“2”,答案是 3。我通过两个并行二进制搜索来做到这一点,一个是寻找出现数字的最低索引,另一个是最高的。最后,我只是减去这两个值。问题来了:有没有更快/更有效的方法来只使用数组?提前谢谢你。
【问题讨论】:
-
你的数组有排序值吗??
-
是的,我的数组已排序。
-
您的解决方案只有在对数组进行排序时才有效。即使这样,您也需要在
highindex-lowIndex的差值上加一,以获得正确的解决方案。如果数组未排序,则需要遍历整个数组并简单地计算数字 n 的出现次数。
标签: arrays search binary-search