前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >leetcode 题解~两数之和 ~ C++做法

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

作者头像
伪君子
发布2018-07-12 11:28:06
8870
发布2018-07-12 11:28:06
举报

0 前言

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

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<iostream>
#include<vector>
#include<unordered_map>
using namespace std;

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
/*这里定义了两个顺序容器*/
        vector<int> 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 (点击阅读原文可见)

我太水了,只能通过写注释来理解代码。

题图:Photo by Badder Manaouch on Unsplash

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 伪君子的梦呓 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0 前言
  • 1 实现
    • 题目
      • 示例
        • 思路
          • 代码
          相关产品与服务
          容器服务
          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档