java有序数组计数
时间: 2025-02-17 09:17:38 浏览: 28
### 统计有序数组中各元素数量的方法
为了在 Java 中统计有序数组中各个元素的数量,可以利用有序这一特性来优化效率。下面介绍一种基于双指针的方式来进行统计。
#### 方法描述
通过两个索引变量 `i` 和 `j` 来遍历整个数组。其中 `i` 表示当前正在处理的不同数值的位置;而 `j` 用于向前探索直到遇到不同的值为止。每当找到一个新的不同值时,则计算两者之间的距离即为该值重复次数,并更新到哈希表或其他结构里保存结果。最后返回记录的结果集即可[^1]。
```java
import java.util.*;
public class ElementCounter {
public static Map<Integer, Integer> countElements(int[] nums) {
Arrays.sort(nums); // Ensure the array is sorted
Map<Integer, Integer> frequencyMap = new LinkedHashMap<>();
int i = 0;
while (i < nums.length){
int j = i + 1;
while(j < nums.length && nums[j] == nums[i]){
++j;
}
frequencyMap.put(nums[i], j - i);
i = j;
}
return frequencyMap;
}
public static void main(String[] args) {
int[] data = {1, 2, 2, 3, 3, 3};
System.out.println(countElements(data));
}
}
```
此方法的时间复杂度主要取决于排序过程 O(n log n),如果输入已经是排好序的情况下则只需要线性的扫描时间O(n)。
阅读全文
相关推荐



















