数组中重复元素的问题

来源:互联网 发布:数据图表在线处理网站 编辑:程序博客网 时间:2024/05/29 14:28
 import java.util.ArrayList;import java.util.Arrays;/** * Created by lihaibin02 on 2016/9/8. *//*判断数组中是否有重复元素,O(N)*/public class FindMuNumber {    /*判断是否有重复元素*/    public String findTheNumber(int arr[]) {        String flag = "NO";//        int arrayInt[]=new int[65535];        ArrayList<Integer> list = new ArrayList<Integer>(0);        for (int i = 0; i < arr.length; i++) {            list.add(arr[i]);        }        int max = list.get(0);        for (int k = 0; k < list.size(); k++) {            if (max < list.get(k)) {                max += list.get(k);            }        }        int arrayInt[] = new int[max];        for (int j : arr) {            arrayInt[j] += 1;        }        for (int k : arrayInt) {            if (k > 1) {                flag = "Yes";            }        }        return flag;    }    /*找到重复出现次数最多的值,以及重复出现的次数*/    public int findTheMax(int arr[]) {        ArrayList<Integer> list = new ArrayList<Integer>(0);        for (int i = 0; i < arr.length; i++) {            list.add(arr[i]);        }        int max = list.get(0);        for (int k = 0; k < list.size(); k++) {            if (max < list.get(k)) {                max += list.get(k);            }        }        int arrayInt[] = new int[max];        for (int j : arr) {            arrayInt[j] += 1;        }        int count = arrayInt[0];//出现的次数        int number = 0;//出现的和        for (int k = 0; k < arrayInt.length; k++) {            if (count < arrayInt[k]) {                count = arrayInt[k];                number = k;            }        }        return count;    }    /*输出出现1次以上的元素*/    public ArrayList<Integer> findTheArray(int arr[]) {        ArrayList<Integer> list = new ArrayList<Integer>(0);        for (int i = 0; i < arr.length; i++) {            list.add(arr[i]);        }        int max = list.get(0);        for (int k = 0; k < list.size(); k++) {            if (max < list.get(k)) {                max += list.get(k);            }        }        int arrayInt[] = new int[max];        for (int j : arr) {            arrayInt[j] += 1;        }        int ssdf[]=new int[list.size()];       System.out.println(Arrays.toString(list.toArray()));//ArrayList转换成数组,数组转换成字符串        ArrayList<Integer> resultArray =new ArrayList<Integer>();        for(int m=0;m<arrayInt.length;m++){//节约空间资源            if(arrayInt[m]>1){                resultArray.add(m);            }        }    return resultArray;    }    public static void main(String[] args) {        FindMuNumber fmn = new FindMuNumber();        int arr[] = {1, 3, 3, 5, 5,889,12,12,123,3123,4343,123,444,444,121,121};        System.out.println(fmn.findTheArray(arr));    }}

0 0
原创粉丝点击