寻找数组中出现次数最多的值

来源:互联网 发布:软件求不定积分 编辑:程序博客网 时间:2024/05/14 09:08

网上看了很多人的方法,自己也试着写了一个。本来还以为时间复杂度还行,结果在一个在线考试系统上用此算法后,被告知是O(N2)。。。

所以这代码就算是infamous的吧。

public class FindMostEle {public static int find(int[] arr) {String searchStr = "";for (int i : arr) {searchStr += "/" + String.valueOf(i) + "/";}int max = -1;int ele = -1;for (int i : arr) {String s = String.valueOf(i);String temp = searchStr.replaceAll("/" + s + "/", "");int num = (searchStr.length() - temp.length()) / (s.length()+2);if (num > max) {max = num;ele = i;}searchStr = temp;}System.out.println(max);return ele;}/** * @param args */public static void main(String[] args) {int[] in = {11, 11, 111, 1, 1111, 11, 3311, 111, 111, 111, 11};System.out.println(find(in));}


原创粉丝点击