映射,以元素为key,数组索引为value
遍历数组,若map中已经存在说明重复,取最小索引;不存在就添加到map中。
int duplicate(vector<int>& numbers) {
        if(!numbers.size()) return -1;
        map<int, int> m;
        int index = numbers.size();
        for(int i = 0; i < numbers.size(); ++i){
            if(m.find(numbers[i]) != m.end()){
                index = min(index, m[numbers[i]]);
            }
            else{
                //m.insert(pair<int, int>(numbers[i], i))
                m.insert(make_pair(numbers[i], i));
            }
        }
        return index == numbers.size() ? -1 : numbers[index];</int>
}

京公网安备 11010502036488号