题目描述
输入一个数组和一个数字,输出数组中相加等于数字的元素下标。
数组要求:不能有重复数字,且数组中符合要求的数字最多只有一对,当没有符合要求的输出时,返回数组长度。
|
示例
输入:
1 2 3 5
7
输出:
1,3
----------------------------------------------------
输入:
1 4 3 5
2
输出:4
思路
0、两遍for循环破解,时间复杂度为O(n),空间复杂度为O(1)。
1、使用哈希表(HashMap,eg:unorder_map),利用哈希表的查找特性可以一遍for循环求解。
2、*双指针法:先对数组进行排序,然后从两端进行遍历。当前值大于所求值时,尾指针向前;当前值小于所求值时,头指针向后。