而立之年终未立,不惑而年犹存惑!这或许就是所谓的中年危机吧!

自认为是一个“勤奋”的人,又“未有寸功”,天天碌碌,不知何为。

“常立志”而未达,以至于“泯然众人矣”。

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年后的自己的更多相关文章

  1. 刷leetcode是什么样的体验?【转】

    转自:https://www.zhihu.com/question/32322023 刷leetcode是什么样的体验? https://leetcode.com/ 1 条评论   默认排序 按时间排 ...

  2. 刷LeetCode的正确姿势——第1、125题

    最近刷LeetCode比较频繁,就购买了官方的参考电子书 (CleanCodeHandbook),里面有题目的解析和范例源代码,可以省去非常多寻找免费经验分享内容和整理这些资料的时间.惊喜的是,里面的 ...

  3. 初刷LeetCode的感受

    自从上个月进入实验室的云安全项目组后,因为要接触到实际的代码,在实验室博士的建议下我们项目组的硕士开始刷LeetCode练习编程能力,保持每周抽空刷几道算法题.虽然刷的不多,到现在一共只刷了不到30题 ...

  4. 用JavaScript刷LeetCode的正确姿势

    虽然很多人都觉得前端算法弱,但其实 JavaScript 也可以刷题啊!最近两个月断断续续刷完了 leetcode 前 200 的 middle + hard ,总结了一些刷题常用的模板代码.走过路过 ...

  5. 工具推荐--刷LeetCode的神器

    本文首发于微信公众号:[坂本先生],文章地址为: https://mp.weixin.qq.com/s/vHv5hO8nils_g2VSKwu1Cg如有转载请标明出处 今天给大家安利一款快速刷Leet ...

  6. 【一起刷LeetCode】整数反转

    前言&絮叨 别人都忙着参加年会晒奖品,我却忙着写代码.每逢年底都要安排几个紧急项目,我什么时候能摆脱这种宿命. 在忙也不能忘记刷LeetCode,毛毛向前冲!!! 题目描述 给出一个 32 位 ...

  7. 推荐一种通过刷leetcode来增强技术功底的方法

    背景 如果前人认为这个一种学习提高或者检验能力的成功实践.而自己目前又没有更好的方法,那就不妨试一试. 而不管作为面试官还是被面试者,编码题最近越来越流行.而两种角色都需要思考的问题是希望考察什么能力 ...

  8. 用golang刷LeetCode

    用golang刷LeetCode 用Go语言刷LeetCode记录,只是为了练习Go语言,能力有限不保证都是最优解,只能在此抛转引玉了. 数据结构和算法 数据结构和算法是程序员的命根子,没了命根子也就 ...

  9. 用 JavaScript 刷 LeetCode 的正确姿势【进阶】

    之前写了篇文章 用JavaScript刷LeetCode的正确姿势,简单总结一些用 JavaScript 刷力扣的基本调试技巧.最近又刷了点题,总结了些数据结构和算法,希望能对各为 JSer 刷题提供 ...

随机推荐

  1. 从应用的角度去学习Python--为孩子下载课本

    最近,孩子上课都没有课本,老师给发的是一个微信链接,打开看可以,打印打不全.怎么办?我就想既然能看,从爬虫的角度就一定可以抓下来! 在Chrome中打开网址,好家伙!一堆的Script之类的玩意儿.经 ...

  2. 安装Mailx到CentOS(YUM)

    运行环境 系统版本:CentOS Linux release 7.3.1611 (Core) 软件版本:无 硬件版本:无 安装过程 1.配置网络 [root@localhost ~]# vi /etc ...

  3. 题解【洛谷P2730】魔板 Magic Squares

    题面 首先我们可以发现,在每一次 BFS 时按照 \(A→B→C\) 的顺序枚举遍历肯定是字典序最小的. 然后就是普通的 BFS 了. 我们考虑使用 \(\text{STL map}\) 来存储起点状 ...

  4. ubuntu---CUDA版本与NVIDIA显卡驱动版本对应关系查询

    https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html ,如果不是CUDA 10.2 版本的,可以类似的查找 CUDA x ...

  5. 面试官:说说TCP和UDP的区别和应用场景

    原创文章首发于公众号:「码农富哥」,欢迎收藏和关注,如转载请注明出处! 上一篇聊完 一文彻底搞懂 TCP三次握手.四次挥手过程及原理 这次聊聊TCP和UDP的区别和场景 TCP/IP 中有两个具有代表 ...

  6. JavaSE学习笔记(6)---异常

    JavaSE学习笔记(6)---异常 ​ 软件程序在运行过程中,非常可能遇到问题,我们称之为异常,英文是:Exception,意思是例外.遇到这些例外情况,或者叫异常,我们怎么让写的程序做出合理的处理 ...

  7. 博客前端live2D实现

    1.本来以为没那么简单,结果看了大佬的https://www.cnblogs.com/liuzhou1/p/10813828.html#4431992的简单明了.效果如下,可随鼠标移动. ①这里添加在 ...

  8. Building a Space Station POJ - 2031 三维最小生成树,其实就是板子题

    #include<iostream> #include<cmath> #include<algorithm> #include<cstdio> usin ...

  9. LeetCode 112. 路径总和 (递归遍历二叉树)

    题目链接:https://leetcode-cn.com/problems/path-sum/ 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和 ...

  10. ms17-010 利用msf的exp和一个扫描工具的复现

    0x01简介 永恒之蓝漏洞是方程式组织在其漏洞利用框架中一个针对SMB服务进行攻击的漏洞,该漏洞导致攻击者在目标系统上可以执行任意代码. 攻击对象:win7及win7以下的操作系统且开启了445端口s ...