//
// Created by Mr.Hu on 2019/1/7.
//
// leetcode 645 set mismatch
//
// 题目给定一个数组,从1到n,n为数组大小,其中存在一个重复的数字,因此也就缺少一个数字。数组为乱序。要求找出重复数字和缺少数字。
//
// 这个题目之前遇到过类似的,有这样一个思路可以复用:从第一个数字开始,如果数字与索引值不能对应,则将数字与到其本身应该在位置的值进行交换。
// 中间存在一个判断,如果其本身位置上的数字和其相等,则该数字就是重复数组。
//
// 得到重复数字后,如何得到缺少数字呢?有一个trick:已知理想数组是1-n,现在有一个重复一个丢失,重复已经找到,丢失的可以用和的差值求得。
// 这就是本题的整个思路。
//
// leetcode上最好的方法是给定一个大容量数组,遍历nums,数组的值为每个数字出现的次数,出现两次的数为重复的数字,没出现过的数字为缺失数字。
// 这种可以说是空间换时间的操作。
//
1 |
|