欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java实现找到数组中不重复的且最大的数

程序员文章站 2024-03-15 18:50:06
...

找到数组中不重复的且最大的数

package shousi;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;

/**
 * 找到数组中不重复的且最大的数
 */
public class Test27 {

	public static int getNoRepeat(int[] arr) {
		HashMap<Integer,Integer> map = new HashMap<>();
		int[] res = new int[arr.length];
		for (int i = 0; i < arr.length; i++) {
			if(map.containsKey(arr[i])) {
				map.put(arr[i], map.get(arr[i])+1);
			}else {
				map.put(arr[i], 1);
			}
		}
		
		Iterator<Integer> iter = map.keySet().iterator();
		while(iter.hasNext()) {
			Integer key = iter.next();
			Integer value = map.get(key);
			for (int i = 0; i < res.length; i++) {
				if(value == 1) {
					res[i] = key;
				}
			}	
		}
		Arrays.sort(res);
		int result = res[res.length - 1];
		return result;
	}
	public static void main(String[] args) {
		int[] arr = {1,2,4,5,6,3,2,3,3};
		int res = getNoRepeat(arr);
		System.out.println(res);
	}
}

改进版:

package shousi;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;

/**
 * 找到数组中不重复的且最大的数
 */
public class Test27 {

	public static int getNoRepeat(int[] arr) {
		HashMap<Integer,Integer> map = new HashMap<>();
		for (int i = 0; i < arr.length; i++) {
			if(map.containsKey(arr[i])) {
				map.put(arr[i], map.get(arr[i])+1);
			}else {
				map.put(arr[i], 1);
			}
		}
		
		Iterator<Integer> iter = map.keySet().iterator();
		int result = 0;
		while(iter.hasNext()) {
			Integer key = iter.next();
			Integer value = map.get(key);
			if(value == 1 && key > result) {
				result = key;
			}	
		}
		return result;
	}
	public static void main(String[] args) {
		int[] arr = {6,1,2,4,5,3,2,3,3};
		int res = getNoRepeat(arr);
		System.out.println(res);
	}
}