方法一:最直观的想法,暴力枚举。复杂度O(n^2),没有提交,目测超时。

方法二:排序+双指针扫描。复杂度O(nlogn)。开一个结构体记录原来数组的值和下标,对值排序,双指针扫描结构体的值,相应的下标就是结果。

方法三:对数组的值建立与下标相关的hash表,枚举第一个位置,O(1)查询第二个位置。复杂度O(n)。用unordered_map<>实现,有一点需要注意,当数组中出现两个相同的值,并且这两个值对应的下标就是结果,那么后面的值是插入不到unordered_mp<>中的。此时有两种解决方法,第一种是重载散列函数,第二种见程序。但是题目貌似没有出现的这样的数据,不考虑这种情况也能A掉。