algorithm - 在数组中的前 N 个数字中找到最大数字的有效方法
问题描述
假设我有一个名为A的超大数组。
我想找到一个结果数组 R,它:
R[i] = max(A[i - X]:A[i + 1])。
例如,A=[5,7,1,4,3,9,6,2,5,5,10],X=2。
那么结果将是 R = [5,7,7,7,4,9,9,9,6,5,10]
作为
..
R[2] = A[2-2:3] = 最大值(5,7,1) = 7
R[3] = A[3-2:4] = 最大值(7,1,4) = 7
R[4] = A[5-2:5] = 最大值(1,4,3) = 4
...
如果 A 像 100 亿个数字,而 X 像 1000,那么找到结果的最有效方法是什么?
我能想到的最好的方法就是创建一个优先级队列来存储/删除循环 A 时的最大数量。
谢谢!
解决方案
推荐阅读
- reactjs - 如何使用 okta idp 启动登录成功登录到应用程序
- java - 区分 *.zip 文件和压缩容器文件
- javascript - 向下滚动在 ReactJs 中提交
- python - 在列表中,有没有办法定义未定义的变量?
- azure - 我可以多次(一次一个)启用 Azure Cosmos DB 免费层吗?
- semantic-ui - 语义 UI:无法通过可搜索的下拉菜单“选项卡”
- c++ - 使用 join 无限运行 2 个线程
- javascript - JavaScript HTML 验证功能仅在表单元素全部填满时有效
- javascript - 使用 useState 附加字符串值
- reactjs - (已解决):-)(React 和 Django)我无法从我的用户列表中删除用户。(HTTP 状态码 404)