两个数之和

来源力扣:

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

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

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

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

所以返回 [0, 1]

我写的是:

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        vector<int> result(2);
        for(int i=0;i<nums.size();i++)
        {
            for(int j=i+1;j<nums.size();j++)
            {
                 if(nums[i]+nums[j]==target)
                 {
                     result[0]=i;
                     result[1]=j;
                 }
            }
        }
        return result;
    }
};

基本思路,遍历每一个数它后面的每一个数相加。

原文地址:https://www.cnblogs.com/aoximin/p/12307735.html

时间: 2024-10-22 00:35:05

两个数之和的相关文章

【算法C++】检测数组里是否有两个数之和等于某个数

问题: 检测数组里是否有两个数之和等于某个数 解决方法一:先将数组排序,然后从两头开始遍历 数组排序后,从左端开始取最小值,从右端取最大值, 判断两者之和与目标的大小: 1. 等于时,输出两个数: 2. 大于时,右端移到第2个数,继续判断: 3. 小于时,左端移到第2个数,继续判断. #include <iostream> #include <string> #include <algorithm> using namespace std; void fun1(int

关于数字的智力题-两个数之和与之积

题目: 已知两个1~30之间的数字,甲知道两数之和,乙知道两数之积.   甲问乙:"你知道是哪两个数吗?"乙说:"不知道":   乙问甲:"你知道是哪两个数吗?"甲说:"也不知道":   于是,乙说:"那我知道了":   随后甲也说:"那我也知道了":   这两个数是什么? 解答: 隐含条件:乙不知道答案,则说明这两个数之积不是素数.当甲回答说不知道答案后,乙马上知道了答案,说明乙能利用

【C语言】不使用+-*/实现两个数之和

//不使用+-*/实现两个数之和 #include <stdio.h> int add(int num1, int num2) { int sum, car; do { sum = num1^num2; car = (num1&num2) >> 1; num1 = sum; num2 = car; } while (num2 != 0); return num1; } int main() { int a = 1; int b = 20; printf("%d\n

【c语言】求斐波那契数列的前40个数。特点,第1,2个数为1,从第三个数开始,该数是前面两个数之和

// 求斐波那契数列的前40个数.特点,第1,2个数为1,从第三个数开始,该数是前面两个数之和 #include <stdio.h> int main() { int a = 1; int b = 1; int c,i; printf("%d\t%d\t",a,b); for(i = 3; i <= 40; i++) { c = a + b; printf("%d\t",c); a = b; b = c; } printf("\n&quo

求两个数之和

求两个数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同样的元素. 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] int* twoSum(int* nums, int numsSize, int target, int*

Java之求数组中两个数之和

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的 两个 整数. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同样的元素. 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 通过使用空间换取时间,降低时间复杂度时间复杂度O(n)空间复杂度o(n) public int[] twoSum(int[] nums, int

从键盘上输入一个正整数n,请按照以下五行杨辉三角形的显示方式, 输出杨辉三角形的前n行。请采用循环控制语句来实现。 (三角形腰上的数为1,其他位置的数为其上 一行相邻两个数之和。)

package com.homework.zw;//此题没有太大难度,不再写注释import java.util.Scanner;public class work4 { public static void main(String[] args)  {   Scanner sc = new Scanner(System.in);         System.out.println("请输入一个正整数n");         int n = sc.nextInt();       

两数之和

给定整数数组,如果有两个数之和是给定的数,那么返回两个数的下标. 每组输入只有一个解,同一个数不能用两次 例如:给定nums=[2,7,11,15],target=9, 因为nums[0]+nums[1]=9 返回[0,1] 我的答案: public class Solution { public int[] twoSum(int[] nums, int target) { int[] res = new int[2]; for(int i = 0;i<nums.length;i++){ for

两数之和等于目标值

1. LeetCode(twoCode) Given an array of integers, find two numbers such that they add upto a specific target number. The function twoSum should return indices of the two numbers suchthat they add up to the target, where index1 must be less than index2