从心出发-刷leetcode写给5年后的自己
而立之年终未立,不惑而年犹存惑!这或许就是所谓的中年危机吧!
自认为是一个“勤奋”的人,又“未有寸功”,天天碌碌,不知何为。
“常立志”而未达,以至于“泯然众人矣”。
2020年起的五年,专注于2-3个点,希望能有一点点小“成就”。
1. 提升个人能力
坚持输入
简而言之,就是不断学习。
读书: 每读一本书就写读书心得。
提升技术能力:提升java开发能力,精进C++能力。
思考
行动上的勤快人,不做思想的懒汉;
用思维导图进行总结
输出
坚持技术博客,2020年度至少写100篇;
2. 用3个月的时间刷leetcode
刷leetcode,做到手写代码bug free。通过刷题,提升个人“数据结构”、“算法”等能力。
闲话少叙,直奔主题,从leetcode的top-100-liked-questions
开始。
3. two sum
第一个题目是two sum
,看到题目,难度是easy,但我懵了。
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.
Example:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].
好在题目右边,有一个框,选择java的时候,会出现:
如果说用java写,我觉得还是写的出来的。
毕竟一直在用,而且对于里面的集合相关类都非常熟悉。
但C++,我确实倍感吃力,主要是STL很少用,上来给了vector,我就已经无力了:
我在dev-c++写代码,遇到3个问题。
第1个是环境,需要配置-std=c++11
,见下图:
第2个,就是要
#include<vector>
#include<unordered_map>
第3个,需要增加调试:
看来要补的知识还很多。
4.疑问
在此,我有一个疑问,代码提交上去后,他们怎么测试?
是不是有test case:生成Solution对象,调用twoSum(),验证结果?
还需要学习啊!
5.总结
写了2个版本,第一个版本:
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> res;
for(int i=0; i< nums.size(); i++){
for(int j=i+1; j< nums.size(); j++){
if(nums[i] + nums[j] == target){
res.push_back(i);
res.push_back(j);
break;
}
}
}
return res;
}
};```
第二个版本,网上找的:
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int,int> mapping;
vector<int> result;
for(int i=0;i<nums.size();i++){
mapping[nums[i]] = i;
}
for(int i=0; i< nums.size(); i++){
const int gap = target - nums[i];
if(mapping.find(gap) != mapping.end() && mapping[gap]>i){
result.push_back(i);
result.push_back(mapping[gap]);
break;
}
}
return result;
}
};
上述代码,是需要提交的,如果在本地的dev-c++中,则需要增加main函数:
int main(){
Solution s;
vector<int> v = {2,7,11,15};
vector<int> v2 = s.twoSum(v,9);
for(vector<int>::iterator iter=v2.begin();iter!=v2.end();++iter)
cout<<*iter<<" ";
return 0;
}
内存差不多,但速度提升10倍:
完整代码需要的,请留言,我发给您!
为了后面更快的刷题,本来我就非常熟悉c++,但不熟悉STL,two_sum我写了7遍。
差不多,可以做到 “快”,“bug free”了。
为什么要写这么多遍???请参考我的另两篇博客:
从心出发-刷leetcode写给5年后的自己的更多相关文章
- 刷leetcode是什么样的体验?【转】
转自:https://www.zhihu.com/question/32322023 刷leetcode是什么样的体验? https://leetcode.com/ 1 条评论 默认排序 按时间排 ...
- 刷LeetCode的正确姿势——第1、125题
最近刷LeetCode比较频繁,就购买了官方的参考电子书 (CleanCodeHandbook),里面有题目的解析和范例源代码,可以省去非常多寻找免费经验分享内容和整理这些资料的时间.惊喜的是,里面的 ...
- 初刷LeetCode的感受
自从上个月进入实验室的云安全项目组后,因为要接触到实际的代码,在实验室博士的建议下我们项目组的硕士开始刷LeetCode练习编程能力,保持每周抽空刷几道算法题.虽然刷的不多,到现在一共只刷了不到30题 ...
- 用JavaScript刷LeetCode的正确姿势
虽然很多人都觉得前端算法弱,但其实 JavaScript 也可以刷题啊!最近两个月断断续续刷完了 leetcode 前 200 的 middle + hard ,总结了一些刷题常用的模板代码.走过路过 ...
- 工具推荐--刷LeetCode的神器
本文首发于微信公众号:[坂本先生],文章地址为: https://mp.weixin.qq.com/s/vHv5hO8nils_g2VSKwu1Cg如有转载请标明出处 今天给大家安利一款快速刷Leet ...
- 【一起刷LeetCode】整数反转
前言&絮叨 别人都忙着参加年会晒奖品,我却忙着写代码.每逢年底都要安排几个紧急项目,我什么时候能摆脱这种宿命. 在忙也不能忘记刷LeetCode,毛毛向前冲!!! 题目描述 给出一个 32 位 ...
- 推荐一种通过刷leetcode来增强技术功底的方法
背景 如果前人认为这个一种学习提高或者检验能力的成功实践.而自己目前又没有更好的方法,那就不妨试一试. 而不管作为面试官还是被面试者,编码题最近越来越流行.而两种角色都需要思考的问题是希望考察什么能力 ...
- 用golang刷LeetCode
用golang刷LeetCode 用Go语言刷LeetCode记录,只是为了练习Go语言,能力有限不保证都是最优解,只能在此抛转引玉了. 数据结构和算法 数据结构和算法是程序员的命根子,没了命根子也就 ...
- 用 JavaScript 刷 LeetCode 的正确姿势【进阶】
之前写了篇文章 用JavaScript刷LeetCode的正确姿势,简单总结一些用 JavaScript 刷力扣的基本调试技巧.最近又刷了点题,总结了些数据结构和算法,希望能对各为 JSer 刷题提供 ...
随机推荐
- Nginx配置HTTPS并将HTTP请求重定向到HTTPS
个人博客 地址:https://www.wenhaofan.com/a/20190702214652 在阿里云获取免费的HTTPS证书 配置HTTPS之前首先需要拥有HTTPS证书,在阿里云可以获得域 ...
- 数据库中查出来的时间多8小时&查询数据正常展示少8小时
将serverTimezone的配置改为Asia/Shanghaiurl: jdbc:mysql://127.0.0.1:3306/bfc?useUnicode=true&characterE ...
- XMind快捷键汇总
在 XMind: ZEN 中,快捷键是可以大大提高绘图效率的存在.掌握常用的快捷键组合,就可以在键盘上运指如飞,快速地进行思维导图的绘制.还在等什么?感兴趣的朋友,下面就和小编一起来看看吧! XMin ...
- 《操作系统真象还原》ELF文件
下面是第五章部分内容的收获. 用C语言编写内核 一直以来我们都是用汇编语言编写程序的,但接下来我们或许很少用汇编语言编写代码了,大多数都是使用C语言.为什么要这样呢?书上的解释我看的不是很懂,只能结合 ...
- 关于java静态存储类的一个知识点
今天在写代码的时候产生了一个很奇怪的问题:静态类里的数据在其他类中更改之后,是否会保存 然后就动手试验了一下,结果是 ·在更改数据的类中,输出数据都是更够以后的数据 ·在先执行更改数据的类之后执行第二 ...
- 设置 myeclipse 编码格式
参考网址:https://jingyan.baidu.com/article/77b8dc7fc6e1626174eab6bb.html
- 你这是virus吧?
谁在我的vps上跑了这个?我的备份终于起一定作用了. GO declare @sql varchar(8000) while (select count(*) from sysobjects wher ...
- C# LINQ学习笔记三:LINQ to OBJECT之操作字符串
本笔记摘抄自:https://www.cnblogs.com/liqingwen/p/5814204.html,记录一下学习过程以备后续查用. 一.统计单词在字符串中出现的次数 请注意,若要执行计数, ...
- poj1141题解
题意 空序列是规则序列:用小括号(或者方括号)把一个规则序列括起来依然是规则序列:两个规则序列并列在一起仍然是规则序列. 给出一个括号字符串S,求一个规则序列ANS,满足S是ANS的子序列且ans尽可 ...
- JQ input输入框回车生成标签,可删除,并获取标签的值
在网上找的,效果如下 html代码 <!DOCTYPE html> <html lang="zh-CN"> <head> <title&g ...