LeetCode之两数之和

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的方式

相关推荐
java 乐山2 分钟前
蓝牙网关(备份)
linux·网络·算法
云泽8088 分钟前
快速排序算法详解:hoare、挖坑法、lomuto前后指针与非递归实现
算法·排序算法
数字化脑洞实验室10 分钟前
智能决策算法的核心原理是什么?
人工智能·算法·机器学习
流烟默10 分钟前
机器学习中拟合、欠拟合、过拟合是什么
人工智能·算法·机器学习
Brianna Home11 分钟前
现代C++:从性能泥潭到AI基石
开发语言·c++·算法
再卷也是菜12 分钟前
算法基础篇(10)递归型枚举与回溯剪枝
算法·深度优先·剪枝
吃着火锅x唱着歌18 分钟前
LeetCode 2016.增量元素之间的最大差值
数据结构·算法·leetcode
qq192572302726 分钟前
c++特性
开发语言·c++·算法
徐子童28 分钟前
FloodFill---BFS
算法·bfs·宽度优先·队列·floodfill
jerryinwuhan1 小时前
SVM案例分析
算法·机器学习·支持向量机