for (int i = 0; i < nums.size(); i++) {
for (int j = 0; j < nums.size(); j++) {
if (nums.get(i).equals(nums.get(j))){ /*这里为什么不能用==,
使用==如果是三位数以下就能跑,否则无论两个数是否相等都判断
为false,这是为什么?*/
x[i]=x[i]+1; //遍历nums中的每一个元素,记录其出现的次数,放到数组x当中,x与nums的关系是次数与数的关系
}
}
}
这个方法的作用是遍历出当前集合中相同数字出现的次数,并且对应的存放于新数组当中
例如:[2,2,2,2,1,1,1,2]
对应:[5,5,5,5,3,3,3,5]
问题是为什么用==一旦集合的元素大小超过三位数就不行了?
例如:
for (int i = 0; i < nums.size(); i++) {
for (int j = 0; j < nums.size(); j++) {
if (nums.get(i)==(nums.get(j))){ /*这里为什么不能用==,
使用==如果是三位数以下就能跑,否则无论两个数是否相等都判断
为false,这是为什么?*/
x[i]=x[i]+1; //遍历nums中的每一个元素,记录其出现的次数,放到数组x当中,x与nums的关系是次数与数的关系
}
}
}
输入:[407,407,407,63,59,407,197]
输出:[1,1,1,1,1,1,1] // 00 11 22 33 44 55 66 分别进入if一次!
输入:[96,96,97,97,97,96,95,95,97,97,97]
输出:[3, 3, 6, 6, 6, 3, 2, 2, 6, 6, 6] 正确结果!