LeetCode - Two Sum

来源:互联网 发布:zcash挖矿软件 编辑:程序博客网 时间:2024/06/04 17:54

解决问题:Two Sum

自学要点

一、vector的使用

1、include<vector>,如果要排序算法,include<algorithm>

2、定义 & 初始化 vector<int>,模板实例化为int型

3、一段测试用的输出代码

        for(std::vector<int>::iterator m = res.begin(); m != res.end(); m += 2)
        {
            cout<<"index1 = "<<*m<<" Number1 = "<<(*numbersCopy)[(*m)]<<endl;
            cout<<"index2 = "<<*(m+1)<<" Number2 = "<<(*numbersCopy)[*(m+1)]<<endl;
        }

可以发现,遍历必须用迭代器完成,且迭代器支持 m+=2 及类似运算,迭代器类似于指针,要访问元素必须为 (*m)。

二、static类

算法核心

1、将数组排序,因为要返回索引值,故不对原数组排序,对索引值排序。

原数组192837465111921033原索引1234567891011121314排序索引1313579864210111214
排序索引的值对应数组数字从小到大的索引值。这是一个可以借鉴的思路。

2、前后两个游标,逼近比较,根据大小关系调整游标的值。

待学习内容

1、vector知识需要进一步巩固

2、哈希表,本题可以应用哈希表来解。

0 0
原创粉丝点击