1.两数之和(二刷)

class Solution {
    /**
     * 在给定数组中找出两个数,使它们的和等于目标值
     * @param nums 输入整数数组
     * @param target 目标求和值
     * @return 包含两个数字索引的数组(按升序排列),如果不存在则返回空数组
     */
    public int[] twoSum(int[] nums, int target) {
        // 创建结果数组(固定容量为2)
        int[] a1 = new int[2];
        
        // 外层循环:遍历每个元素作为第一个加数
        for(int i = 0; i < nums.length; i++) {
            // 内层循环:遍历后续元素作为第二个加数(避免重复比较)
            for(int j = i + 1; j < nums.length; j++) {
                // 计算当前两数之和
                int temp = nums[i] + nums[j];
                
                // 找到符合条件的数对
                if(temp == target) {
                    a1[0] = i;  // 存储第一个数的索引
                    a1[1] = j;  // 存储第二个数的索引
                    return a1;  // 立即返回结果
                }
            }
        }
        // 没有找到符合条件的结果时返回空数组
        return new int[]{};
    }
}
posted @ 2025-05-17 12:20  星星永远发着光  阅读(11)  评论(0)    收藏  举报