java - 有没有其他方法可以从数组中提取元素对?
问题描述
我正在考虑从 ArrayList 中提取元素对
例如,ArrayList 的值为 [1, 2, 3, 4, 5, 6, 7, 8, 9 。. . 100],我应该做成对的。
简单的方法是按顺序制作 (1, 2) (1, 3) (1, 4) ..(1, 100) (2, 3) (2, 4) (2, 5) 。. ..(99, 100)
但是,如果数组中有 50000 个元素,则需要很长时间。
我想知道有没有什么特别的方法。
解决方案
您的问题的空间和时间复杂度为 O(n 2 ),这意味着任何解决方案都会很慢,但是您可能会发现您不需要实际创建所有对,而是返回给定索引的对。
也许是这样的:
private int[] numbers; // initialised elsewhere
int[] pair(int n) {
return new int[]{numbers[n / numbers.length, numbers[n % numbers.length]};
}
推荐阅读
- media - 问“播放新闻”时没有媒体回应
- node.js - 这是否可以在nodejs中验证远程用户和密码存在检查?
- eclipse - Eclipse Photon,跳过欢迎,缺少复选框
- python - Flask 应用程序中的 asyncio event_loop
- reactjs - Gatsby 博客与 Contentful CMS,如何按日期对博客文章进行排序
- reactjs - 反应输出不会立即改变
- html - html2pdf 不适用于图像缩小
- python - 熊猫数据框 - 索引列标题较低。为什么?
- html - 如何使用 Selenium 3 选择这个跨度类元素?
- lagom - 使用 SSL/TLS 的 Lagom