栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Leetcode学习笔记Day1——第1题以及vector和map

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Leetcode学习笔记Day1——第1题以及vector和map

新的一年开始了

代码练习也要开始了

目录

1. 万能的for循环

2. 进阶:时间复杂度小于O(n^2)

3.知识点

(1)vector (一种顺序容器)

(2)map(一种关联容器)


1. 万能的for循环

时间复杂度O(n^2)

代码如下:

class Solution {
public:
    vector twoSum(vector& nums, int target) {
        int a,b;
        for(a=0;a 

2. 进阶:时间复杂度小于O(n^2)

Leetcode提示用Hash,时间复杂度O(n)。

(还想到了用指针,不过想复习一下map,有没有大神用指针写的求分享。)

将数组中的值当作键值对中的key,将数组的角标当作value,遍历数组。

target-nums[a],查找数组中是否有这个差,这时数组的值是map的key,如果有,就找到key所对应的value,也就是数组的角标。

代码如下:

class Solution {
public:
    vector twoSum(vector& nums, int target) {
        map TSum;//将数组的值作为key,角标作为value
        vector vec;//定义一个容器存放返回的角标
        int a=0;
        int b=0;
        for(a=0;asecond;
                //second表示value,意思就是差在数组中的角标。
                vec.push_back(b);
                //差所对应的角标放进容器。
                vec.push_back(a);
                //此时数组的角标放进容器
            }
            TSum.insert({nums[a],a});
        }
        
        return vec;
    }
};

3.知识点

(1)vector (一种顺序容器)

 存放任意类型的动态数组。

 push_back函数在vector的末尾插入一个数据。

(2)map(一种关联容器)

 map中有一对Key,Value键值对。

 迭代器find函数中的参数是key,find()->first是key的值,find()->second是value的值。

 如果没有相应的key,就指向end()。

每天都要开开心心呀!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/696772.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号