日期:2014-05-20 浏览次数:21000 次
int[] a = {1,2,4,5,3,1,54,23,2,1,4,2};
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(a[0])
for(int i=1;i<a.length;i++){
if(!list.contain(a[i]){
list.add(a[i]);
}
}
System.out.println("不同元素的个数为:"+list.size());
------解决方案--------------------
[code=Java][/code]package com.imtiax.io;
import java.util.Arrays;
public class Num {
public static void main(String[] args) {
int[] a = {1,2,4,5,3,1,54,23,2,1,4,2};
Arrays.sort(a);
int n = 1;
for(int i = 0; i < (a.length - 1); i++) {
if (a[i] != a[i+1])
n++;
}
System.out.println(n);
}
}
------解决方案--------------------
import java.util.*;
class Test{
public static void main(String[] args){
int[] a = {1,2,4,5,3,1,54,23,2,1,4,2};
int Count=0;
for (int i=0;i<a.length;i++){
boolean exitsFlag=false; // false表示没有重复
for (int j=0;j<i;j++)
{
if(a[i]==a[j])
{
exitsFlag=true; // true表示有重复
break;
}
}
if(!exitsFlag){
Count++;
}
}
System.out.print("数组中不同的元素的个数:"+Integer.toString(Count));
}
}
/**
数组中不同的元素的个数:7
**/
------解决方案--------------------
sort
然后detect phase change即可。
整数的话,连sort都是O(N)的,所以就是O(N)的算法。
------解决方案--------------------
简单的方法,放入一个Set<Integer>的集合里面,最后得到的就是不重复的数据了
1楼的方法改进一下就行了
Set<Integer> set = new HashSet<Integer>();
.. 然后把全部数据都放进去
------解决方案--------------------