原题连接
题目比较简单,暴力可以过。不过这里还是可以学到一点东西:
IntArray
有一个属性 size
,表示这个数组的长度。
另外是kotlin中的特殊函数 until
的作用,用它可以让数组遍历的呈现形式更加简洁:
val lst = intArrayOf(1, 2, 3)
len = lst.size
//遍历的一般写法
for(i in 0..len-1) {
//操作
}
//使用until
for(i in 0 until len) {
//操作
}
//迭代器写法
for(item in lst) {
// 对 item 操作
}
这里暴力解法需要双重循环,考虑采用 until
函数实现。
完整代码如下:
class Solution {
fun twoSum(nums: IntArray, target: Int): IntArray {
val len = nums.size
var result = intArrayOf()
for(i in 0 until len-1)
for(j in i+1 until len)
if(nums[i] + nums[j] == target) {
result = intArrayOf(i, j)
}
return result
}
}