【发布时间】:2015-10-18 17:32:10
【问题描述】:
假设给你一个包含以下值的列表:
[1,4,5,7,8,9]
你得到k=4 其中k 是两个数组元素之间的差异。你怎么知道k 出现了多少次?比如在这个列表中k出现了3次[(5-1),(8-4),(9-5)]
我可以使用两个 for 循环来解决这个问题,但这需要 O(n^2) 时间。我听说这可以使用 hashmaps 解决,但不确定如何实现它?
任何想法将不胜感激!
【问题讨论】:
-
你确定应该是HashMap而不是HashSet吗?
-
请注意,Óscar López 的解决方案(目前已接受的答案)无法处理
[4], k = 0和[4, 4, 4], k = 0的琐碎案例 -
^ 收回;现已修复
标签: java arrays algorithm data-structures hashmap