第一个重复算法分析(倒序放入map,最后一个重复的元素)
第一个想到的是用hashmap存储元素,计算出现次数,然后遍历hashmap,输入值为1的元素。
但是后来发现不对,输出的是所有出现一次的元素,因为map是无序的,不一定是第一个。怎么办?
在遍历数组,存入hashmap的时候,判断如果不存在,就设置index=i,记录索引。但是此时map没有内容,根本无法判断是否重复?怎么办?倒序遍历数组就可以满足。
- 倒序遍历数组,放入map
- 如果map存在,value为出现次数,加1
- 如果map不存在,index=i,记录当前元素位置。
- 最后index的值就是第一个不重复的元素位置
代码
package com.puhui.goosecard.web;
import java.util.HashMap;
import java.util.Map;
/**
* 2 * @Author: kerry
* 3 * @Date: 2018/9/14 14:07
* 4
*/
public class Test {
public static void main(String[] args) {
char[] array = {'d', 'a', 'b', 'c', 'c', 'b'};
Map<Object, Object> map = new HashMap<>();
int in