【Leetcode】每日练习

本菜鸟最近准备参加一些高校的夏令营,所以从今天开始每天刷几道leetcode提高自己的编程能力。

题目

 

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

输入输出示例

Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9,

return [0, 1].

分析

本题目运用了我之前学习较少的C++标准模板库vector。

Vector 是C++标准程序库中的一个,可视为会自动扩展容量的数组,以循序(Sequential)的方式维护变量集合。vector的特色有支持随机存取,在集合尾端增删元素很快,但是在集合中间增删元素比较费时。vector是C++标准程序库中的众多容器container)之一。 vector以模板(泛型)方式实现,可以保存任意类型的变量,包括用户自定义的数据类型,例如:它可以是放置整数(int)类型的 vector、也可以是放置字符串(string)类型的 vector、或者放置用户自定类别(user-defined class)的 vector。

  • 初始化

vector初始化由6种方式——

1. vector<int> list;

默认初始化,vector为空,list.size()=0,表明容器内没有元素,没有分配存储空间。

适用于动态添加元素的情况。

2.vector<int> list=list1;

list初始化为list1的拷贝,二者类型必须相同(比如同为<int>型)。

list将具有与list1相同的容量和元素。

3.vector<int> list={1,2,3,4,5}

这种初始化方法类似于数组,将list初始化为列表中元素的拷贝,列表中的元素必须与list中的元素类型相容。

4.vector<int> list(list1.begin()+2,list1.end()-1);

这种初始化方式类似于上一种,将list初始化为两个迭代器指定范围内的拷贝,范围中的元素类型必须与list中的元素类型相容。

5.vector<int> list1(5);

默认值初始化,包含5个元素,每个元素进行缺省的值初始化,对于int,也就是被赋值为0.

用于初期元素个数可预知,但元素值需要动态获取的类型。

6.vector<int> list1(5,3);

指定值初始化,参数含义为list包含5个元素值为3的容器元素。

  • 作为函数参数

当vector用作函数参数时,有其对应的引用格式——

void numabc(vector<int> &a)

  • 当然还有很多其他知识点,在今后的学习中慢慢补充……

源码

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

参考博客

https://blog.csdn.net/veghlreywg/article/details/80400382

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值