leetcode 入门第一题 4ms? 8ms? Two Sum
今天开启leetcode
题意很简单,就是一个数组中求取两数之和等于目标数的一对儿下标
1.暴力 n^2
两个for循环遍历
用时0.1s 开外
代码就不用写了
2.二分 nlogn
我们可以遍历选择每一个元素 ,然后二分剩余(target - ai)
(一)从全序列二分剩余
这就需要考虑下标和自己重叠的情况,比如【3,3】,target:6
于是我们就需要判重叠
代码就长成下面这样了(8ms)
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
multimap<int, int> P;
for (int i = ; i < nums.size(); ++i)
P.insert(pair<int, int>(nums[i], i));
for (auto i : P)
{
map<int, int>::iterator j = P.find(target - i.first);
if (j != P.end() && i.first + j->first == target)
{
if (i.second == j->second)
{
++j;
if (i.first + j->first != target)continue;
}
vector<int> V;
V.push_back(i.second);
V.push_back(j->second);
return V;
}
}
}
};
因为后面四行用于return的代码太长了,看着不舒服,于是改成了
int a[]{i.second,j->second};
return vector<int>(a,a+);
额外加时了4ms。。还是算了=.=
(二)从当前位置之前二分剩余
接着看了下这道题的提交情况,发现竟然有4ms过的,(当然也有0ms的,非正常人,这个可以忽略)
官方代码:

结果跑了8ms,可能是我脸黑,也可能数据增加了,或者,是个玄学测评机?
可以看到这个代码就属于从头到尾一次插入,刚开始是空的,边找边插,找完之后再把当前位置插入序列,这样就可以避免找到自己本身
咦~,这貌似是个好办法,学习了~
到此,还不能说明方法(一)不好或者方法(一)略微复杂
我们对于找答案佛系一点,或许就,见到了奇迹

【3,3】target = 6,同样,第一次(3,0)会找到(3,0),我们可以跳过,(3,1)自然会找到(3,0)进行匹配,自动化随缘法
另:leetcode可能不支持unordered_map或者unordered_multimap中的lower_bound和upper_bound,我也不清楚到底有没有,我只知道VS是有的。
这篇单单是记录一下leetcode初体验,给出的样例题目当然非常简单了,欢迎大伙儿入坑~
感谢您的阅读,生活愉快~
leetcode 入门第一题 4ms? 8ms? Two Sum的更多相关文章
- LeetCode第[1]题(Java):Two Sum 标签:Array
题目: Given an array of integers, return indices of the two numbers such that they add up to a specifi ...
- LeetCode第[1]题(Java):Two Sum (俩数和为目标数的下标)——EASY
题目: Given an array of integers, return indices of the two numbers such that they add up to a specifi ...
- LeetCode【第一题】Two Sum
准备刷一刷LeetCode了. 题目: ''' Given an array of integers, return indices of the two numbers such that they ...
- CTF---编程入门第一题 循环
循环分值:10 来源: 北邮天枢战队 难度:易 参与人数:1478人 Get Flag:467人 答题人数:523人 解题通过率:89% 给出一个循环公式,对于一个整数n,当n为奇数时,n=3n+1, ...
- CTF---隐写术入门第一题 SB!SB!SB!
SB!SB!SB!分值:20 来源: 西普学院 难度:中 参与人数:4913人 Get Flag:1541人 答题人数:1577人 解题通过率:98% LSB 解题链接: http://ctf5.sh ...
- CTF---安全杂项入门第一题 丘比龙的最爱
丘比龙的最爱分值:10 来源: 2014HCTF 难度:易 参与人数:4498人 Get Flag:1366人 答题人数:1384人 解题通过率:99% 传说,丘比龙是丘比特的弟弟,丘比龙是一只小爱神 ...
- CTF---密码学入门第一题 这里没有key
这里没有key分值:10 来源: 西普学院 难度:易 参与人数:5577人 Get Flag:1965人 答题人数:2074人 解题通过率:95% 你说没有就没有啊,俺为啥要听你的啊 解题链接: ht ...
- CTF---Web入门第一题 what a fuck!这是什么鬼东西?
what a fuck!这是什么鬼东西?分值:10 来源: DUTCTF 难度:易 参与人数:7942人 Get Flag:3358人 答题人数:3475人 解题通过率:97% what a fuck ...
- 【LeetCode每天一题】Minimum Path Sum(最短路径和)
Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which ...
随机推荐
- Donald Ervin Knuth:最年轻的图灵奖高德纳
高德纳(Donald Ervin Knuth,1938年),美国著名计算机科学家,斯坦福大学电脑系荣誉教授.高德纳教授被誉为现代计算机科学的鼻祖,在计算机科学及数学领域发表了多部 具广泛影响的论文和著 ...
- session使用
Session的声明与使用 Session的设置不同于Cookie,必须先启动,在PHP中必须调用session_start().session_start()函数的语法格式如下: Bool sess ...
- mysql定时删除数据
删除三天前的数据的sql DELETE FROM table WHERE created_on < DATE_SUB(CURDATE(),INTERVAL 3 DAY); CURDATE() 返 ...
- 2016.5.21——atoi()函数的测试
对函数atoi()函数的测试: atoi()函数将字符串型转换为整型 代码: #include "stdafx.h" #include "iostream" # ...
- Hibernate5笔记4--单表查询
单表查询: Hibernate是DAO层技术,对数据的使用,查询是最为重要的.Hibernate的查询技术非常强大,支持原始SQL语句查询,支持QBC查询及Hibernate特有的HQL查询. H ...
- H5学习笔记1
H5学习笔记 1.创建超链接: target=”_blank”:链接的目标网页会在新的窗口中打开. target=”_parent”:链接的目标会在当前窗口中打开,如果在框架网页中,则会在上一层框架打 ...
- Linux XOR.DDoS样本取证特征与清除
一.取证特征 1)获取进程ID 使用top命令,查看占用内存率最高的十位随机名称进程名(示例:进程名pygdykcrqf) 2)获取进程对应路径 Linux 在启动一个进程时,系统会在/proc下创建 ...
- Jenkins无法安装插件或首次安装插件界面提示Offline
一.首先点击系统管理 二.点击插件管理 三.选择高级管理 四.将升级站点中的https改成http即可
- 学习记录:mongodb里插入整型值
=============================================== 2018/1/24_第1次修改 ccb_warlock == ...
- linux nat网络配置
1. 2 . 3. BOOTPROTO = static ONBOOT=yes #开启自动启用网络连接 IPADDR0=192.168.21.128 #设置IP地址 PREFIXO0=24 #设 ...