1、暴力解法
kotlin
/**
* 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
* 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。
* 你可以按任意顺序返回答案。
*/
fun twoSum(nums: IntArray, target: Int): IntArray {
var firstIndex = -1
var secondIndex = -1
if (nums.size < 2) return intArrayOf(firstIndex, secondIndex)
for (i in 0 until nums.size) {
val lastValue = target - nums[i]
firstIndex = i
for (j in i + 1..nums.size - 1) {
if (nums[j] == lastValue) {
secondIndex = j
return intArrayOf(firstIndex, secondIndex)
}
}
}
return intArrayOf(firstIndex, secondIndex)
}
2、需要注意的地方
边界判断不准,导致结果出错。
break只是跳出了一层循环,导致结果出错。
3、优化方式
采用hashMap的方式