leetcode 题解~两数之和 ~ C++做法

综合编程 2018-06-21 阅读原文

0 前言

最近打算把之前的东西捡起来,毕竟我实在是太水了,如果连这点东西都没有的话,那就真的太说不过去了。

Photo by Badder Manaouch on Unsplash

1 实现

题目

给定一个整数数组和一个目标值,找出数组中和为目标值的 两个 数。

你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。

示例

给定 nums = [2, 7, 11, 15], target = 9,因为 nums[0] + nums[1] = 2 + 7 = 9,所以返回 [0, 1]

题目链接:

https://leetcode-cn.com/problems/two-sum/description/

思路

目标值就是 target,求出两个下标 i、j,要使得 nums[i] + nums[j] = target,返回下标。

代码

#include
#include
#include
using namespace std;

class Solution {
public:
    vector twoSum(vector& nums, int target) {
/*这里定义了两个顺序容器*/
        vector v(2);  //创建一个向量存储容器 int,元素个数为 2
        for(int i = 0; i < nums.size(); i++) {  
/*nums.size()就是 nums 中元素的个数,for 循环,从第一个数开始循环,直到小于nums.size(),也就是 4 就结束循环*/
            for(int j = i + 1; j < nums.size(); j++) {  //和上面差不多,也是 for 循环
                if(nums[i] + nums[j] == target) {  //进行判断,如果 nums[i] 加 nums[j]等于目标值,那么就进入下面
                    v[0] = i;  //把 i 的值赋给 v[0]
                    v[1] = j;  //把 j 的值赋给 v[1]
                    return v;  //返回 v
                }
            }
        }
    }
};

代码来自 https://www.liuchuo.net/archives/1006 ,我太水了,只能通过写注释来理解代码。

简书

责编内容by:简书阅读原文】。感谢您的支持!

您可能感兴趣的

用UWP复习《C#并发编程经典实例》 1. 简介 C#并发编程经典实例 是一本关于使用C#进行并发编程的入门参考书,使用“问题-解决方案-讨论”的模式讲解了以下这些概念: 面向异步编程的async和await 使用TPL(任务并行库) 创建...
LeetCode 709. To Lower Case Implement function ToLowerCase() that has a string parameter str, and returns the same string in lowercase. Exampl...
c#实现ajax通信:向后台发送JSON字符串,接收响应字符串,并转换为对象... 全栈工程师开发手册 (作者:栾鹏)c#教程全解 c#实现ajax通信,通过向服务器后台发送json数据,接收响应数据提交给前台。 其中包含两个主要函数,发送数据,接收响应数据...
LeetCode – 167. Two Sum II – Input arr... Given an array of integers that is already sorted in ascending order , find two numbers such that they add up to a s...
50 times faster data loading for Pandas: no proble... 50 times faster data loading for Pandas: no problem Loading irregular data into Pandas using C++ ...