leecode刷题(8)-- 两数之和

leecode刷题(8)-- 两数之和

两数之和

描述:

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9

所以返回 [0, 1]

思路:

这道题其实很简单,我们可以直接用暴力搜索的方法,设置双重循环,遍历每一个元素,查找两次循环中是否有两个元素的值等于 target 的,取这两个元素的下标,返回数组。

代码如下:

import java.util.Arrays;

public class TwoSum {
    public int[] twoSum(int[] nums, int target) {
        if (nums == null || nums.length == 0) {
            return new int[]{};
        }
        for (int i = 0 ; i < nums.length; i++) {
            for (int j = i + 1; j < nums.length; j++) {
                if (nums[i] + nums[j] == target) {
                    int[] result = {i, j};
                    return result;
                }
            }
        }
        throw new IllegalArgumentException("No two sum solution");
    }

    public static void main(String[] args) {
        int[] nums = {2, 7, 11, 15};
        TwoSum twoSum = new TwoSum();
        int[] result = twoSum.twoSum(nums,9);
        System.out.println(Arrays.toString(result));
    }
}

原文地址:https://www.cnblogs.com/weixuqin/p/10211726.html

时间: 2024-08-05 00:18:13

leecode刷题(8)-- 两数之和的相关文章

LeetCode刷题 - (01)两数之和

题目描述 给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同样的元素. 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 解法一 暴力解法 解题思路 最容易想到的就是暴力法,使用两个遍历,查找两数之和是否为target.流程如下: 使用i来遍历

LeetCode刷题8——两数之和

一.要求 二.背景 数组: 数组是在程序设计中,为了处理方便,把具有相同类型的若干元素按有序的形式组织起来的一种形式.抽象地讲,数组即是有限个类型相同的元素的有序序列.若将此序列命名,那么这个名称即为数组名.组成数组的各个变量称为数组的分量,也称为数组的元素.而用于区分数组的各个元素的数字编号则被称为下标,若为此定义一个变量,即为下标变量 三.思路 (1)挨个找两数之和等于目标值,并找对应两个数的索引,当两个数相等的时候 修改代码后运行成功 (2)进阶版:如果是三个数之和呢 原文地址:https

LeetCode刷题-001两数之和

给定一个整数数列,找出其中和为特定值的那两个数.你可以假设每个输入都只会有一种答案,同样的元素不能被重用.示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1] 1 int* twoSum(int* nums, int numsSize, int target) 2 { 3 int i,j; 4 int* p=(int*)malloc(sizeof(int)*2); 5 for(i=0;

leetcode刷题2:两数相加add_two_numbers

题目:两数相加 (难度:中等) 给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字. 将两数相加返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 思路: 本题的思路很简单,按照小学数学中学习的加法原理从末尾到首位,对每一位对齐相加即可. 技巧在于如何处理不同长度的数字

Leetcode第1题:两数之和

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的 两个 整数.你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同样的元素.示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1] Python: nums = [2, 7, 11, 15, 29] target = 17 # print(nums[0]) def calcOrder(n

LeetCode刷题:第一题 两数之和

从今天开始刷LeetCode 第一题:两数之和 题目描述: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同样的元素. 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 代码如下: 1 /** 2 * Note: The retur

LeetCode——1.两数之和

LeetCode的第一题:两数之和,给定一个整数数组nums和一个目标值target,要求在数组中找出和为目标值的两个整数,并返回它们的下标值. 代码如下: 1 var nums = [2, 7, 11, 15] 2 var target = 9 3 4 var twoSum = function (nums, target) { 5 for (let i = 0; i < nums.length; i++) { 6 for (let j = i; j < nums.length; j++)

leetcode刷题--两数之和(简单)

一.序言 第一次刷leetcode的题,之前从来没有刷题然后去面试的概念,直到临近秋招,或许是秋招结束的时候才有这个意识,原来面试是需要刷题的,面试问的问题都是千篇一律的,只要刷够了题就差不多了,当然你的基础也要扎实,毕竟在技术面的时候很容易露馅的. 所以奉劝各位还未毕业,在大三或大二的师弟师妹早点刷题,心里也有底气进入求职大军,毕竟大四开始刷题的话时间上有些太紧了,推荐刷题的话就是牛客和leetcode. 回归正题,这次记录的是leetcode刷的第一题--两数之和. 二.审题 审题真的很重要

编程题:求两数之和

#include<stdio.h>       /*包含输入输出头文件*/ main()                            /*定义主函数*/ {  int a,b,sum;                /*定义整数变量a.b.sum*/ a=123;                        /*给a赋值*/ b=456;                        /*给b赋值*/ sum=a+b;                  /*令sum=a+b*/ p