gpt4 book ai didi

algorithm - 计算数组中项目的频率 - 没有两个 for 循环

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:30:32 24 4
gpt4 key购买 nike

需要知道有没有一种方法可以在不使用两个循环的情况下计算数组中项目的频率。这是在不知道数组大小的情况下。如果我知道数组的大小,我可以在不循环的情况下使用 switch。但我需要比这更多才多艺的东西。我认为修改快速排序可能会得到更好的结果。

Array[n];

TwoDArray[n][2];

第一个循环将继续 Array[],而第二个循环是找到元素并增加它在二维数组中的计数。

max = 0;
for(int i=0;i<Array.length;i++){

found= false;

for(int j=0;j<TwoDArray[max].length;j++){

if(TwoDArray[j][0]==Array[i]){
TwoDArray[j][1]+=;
found = true;
break;
}
}

if(found==false){
TwoDArray[max+1][0]=Array[i];
TwoDArray[max+1][1]=1;
max+=;
}

如果您能评论或提供更好的解决方案将非常有帮助。

最佳答案

使用映射或哈希表来实现。插入键作为数组项,值作为频率。

如果数组元素的范围不是太大,您也可以使用数组。增加数组元素对应索引处的值计数。

关于algorithm - 计算数组中项目的频率 - 没有两个 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17205439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com