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