如何在markdown中插入图片

Markdown 语法

如何在markdown中插入图片呢?首先我们先来看一个在markdown插入img的例子,这个例子来自Markdown cheatsheet

1
2
3
4
5
6
7
8
# Markdown code #
Inline-style:
![alt text](https://github.com/adam-p/markdown-here/raw/master/src/common/images/icon48.png "Logo Title Text 1")
Reference-style:
![alt text][logo]
[logo]: https://github.com/adam-p/markdown-here/raw/master/src/common/images/icon48.png "Logo Title Text 2"

Inline-style:
alt text

Reference-style:
alt text

用Chrome自带的Developer Tool我们可以看到markdown代码变成了如下的HTML代码:
HTML code

从中我们可以大概知道,markdown中img的语法是:

1
2
3
4
!["img alt属性的值"]("img url或者相对路径也可以" + "img title属性的值")
alt属性:图片不能显示时出现的替代文字(可不写)
title属性:鼠标悬置于图片上时出现的标题文字(可不写)

图片如何保存

解决的markdown语法之后,接着要解决的是图片保存到哪里的问题。在这里我暂时找到了三种解决方法

方法一

把图片上传到新浪微博,用新浪微博来当图床
这个方法我没有试过,因为我没有新浪微博账号-_-||

方法二

把图片上传到Github,在github点击raw获得图片路径
raw example
不知道为什么,我的github上面找不到那个raw按钮,所以我选择的是第三种方法

方法三

把图片上传到Github,在url链接后加上”?raw=true”
例如

1
![](https://github.com/Zhangxi-Lam/zhangxi-lam.github.io/blob/master/2017/03/20/%E5%9B%9B%E5%B9%B4%E5%90%8E/images/TwoYears.jpg?raw=true)

当然大家还可以使用七牛云之类的当图床,这里就不再多说了,方法应该是差不多的

四年后

test

首先先上一张海贼王两年后的图片来点一下题,其实这篇文章的题目的灵感也是从海贼王里面来的。在海贼王的漫画里面,路飞他们为了应对新世界的挑战展开了为期两年的修行,而我则是在大二的暑假找到了自己的目标,从而展开了为期四年的奋斗。

时间回溯到大二6月的那个晚上,我一如往常的和霜,l在成都美食吃着烧烤,喝着啤酒。忽然l说起了c最近考托福的情况,这时我才第一次知道了TOEFL要听说读写样样都会,第一次知道了GRE要30分钟读4篇文章还要做一堆填空,第一次知道了出国还要有不错的GPA,一定的实习经历,第一次知道了出国的申请原来从大四上就开始了。这一切对于大一大二都在浑浑噩噩的我来说,都是需要翻越的一座座大山。

7月的暑假,我去到某东方咨询出国的事情。他们告诉我以我现在的情况可能不好申请到比较好的学校。他们告诉我一般来说如果出国想有个好结果的话最好从大一就开始准备,现在的时间已经比较紧迫了。我还记得晚上我在华师的操场抬头望着月亮,心中满是迷茫,不知道以后我到底是应该出国,考研还是直接参加工作。我只觉得出国对我来说就好像月亮一样遥远。

7月的一个晚上,我跟家人说我不想出国了,我现在准备出国已经太晚了。爸爸没多说什么,只是让我试试,不行再做打算。我想,试试就试试吧。同时,在长久的迷茫之后,我终于确定了自己的目标:我要去最好的大学学习,去最优秀的公司锻炼能力,然后在羽翼丰满,时机成熟的时候,创业。当时科比的一句话一直激励着我:总有人是要赢的,为什么不能是我呢?

之后我开始学英语准备GRE。当时我的目标是330分。为了达到这个目标,我用《17天搞定GRE单词》的方法背单词,每天最多的时候一天要背8~9个小时。那段日子除了背单词和吃饭睡觉,我几乎没有什么别的时间。也是那段时间我戒掉了玩了两年的LOL。那段日子很苦,但我很庆幸自己坚持了下来,事后证明那段日子让我基本上一举通过了单词关,虽然之后的日子单词还是要背,不过已经不会成为一个很大的问题。

之后大三开学,因为大一大二的GPA并不高,大三的时候我必须争取提高自己的GPA。还记得开学的时候徐导给我们开班会,当时他说“你们班只有一个一等(奖学金),其他的都是三等(奖学金),我希望大三你们班至少能多一个二等(奖学金)。”当时我就在想,大三我一定要拿个二等奖学金。从那之后,我开始了GPA,GRE双线作战。白天上课,做作业,做完作业背单词,做阅读。那段日子很辛苦,有时候为了完成当天的单词任务,我甚至要在晚自习结束,教室锁门之后跑到教三的楼梯间背单词,然后赶在教三锁门前出来。幸好在11月的时候遇到了霜,帮我分担了很多压力,如果不是因为她,我真的不知道自己能不能坚持下来。大三上期末的时候,为了GPA,我第一次通宵复习。北京一月的清晨,又困又饿的我们从熬了一夜的北师雕刻时光走出来,寒冷的北风吹在脸上,当时我想这就是奋斗的艰辛吧。

时间很快来到大三下,我还是按着大三上的步调:上课,做作业,学英语。可我忘记了一件同样重要的事情——实习。在三月,我突然知道了一个一同准备出国的同学已经在清华的实验室实习的时候,我慌了。我觉得自己又慢了别人一步。于是我也马上开始找实习,并且非常幸运的遇到了都老师,Eric老师和郭学长。从此,我在刷GPA,学英语之外,又多了一条线,实习。

大三的五月,我终于第一次考了GRE。当考试结束我看到屏幕上显示的325,我不知道是该哭还是该笑。我的目标是330,结果却考了325。不过我已经被GRE折磨了快一年了,我已经不想再考了。

大三很快结束了,我幸运的拿到了二等奖学金,学习进步奖和优秀班干部三个奖项。那时我想,如果我认真的去做的话,也是可以做出成绩的。那一年的成绩也让我稍微有了多一点自信。同时我也在想,如果我大一大二没有那样荒废的话,现在的情况一定会好得多吧。不过已经没有后悔药可以吃了,我也只能后面继续努力了。

大三的暑假,在回家呆了几周后,我回到学校开始了实验室,咖啡厅,宿舍三点一线的生活。白天在实验室做项目,晚上在漫咖啡学托福(因为漫咖啡可以开到很晚),然后学到11点回宿舍睡觉。那段时间非常充实,在郭学长,都教授和Eric老师的帮助下,我学会了CUDA,Git/Github,Linux和Vim,这些都是让我在之后的学习中受益无穷的东西。项目的进展也越来越好。同时在8月底我考了第一次的托福——100分。同样是一个让我苦笑不得的数字,刚好卡在了大家常说的托福标准线上。不过被英语折磨了一年多的我实在是学不动了。

大四转眼就到了,我也带着自己的成绩单(GRE325,TOEFL100,GPA83/100)和同学们一同提交了申请。身边的同学基本上绩点都会比高让我比较没有自信,但当我看到往年和我背景差不多的人顺利的申请到好的大学,心里也会期盼着自己是不是也会那么幸运。然而现实是残酷的,二三月的时候身边的同学一个个都收到了好大学的录取,而我却除了一把的据信什么都没有收到。我开始变得越来越焦虑,每天早上的第一件事就是打开邮箱,然而我想要的好消息却迟迟不来。那段时间我无数次想过可能我就这么没学上了。我自问我大三已经尽了自己的全力,比身边很多出国的同学都要努力的多,甚至大四下没课之后很多同学都已经在玩的时候我还是在坚持学习,然而大一大二两年拉下的差距比我想象的还要大。无奈之下我只好找起了工作。初次接触社会也让我开始了解到工作的不易,不过万幸我还是比较快的找到了一份还可以的工作,总算有个保底的我心态终于好了一点。总算在三月底我收到了第一个录取,之后也陆续收到了两三个录取。虽然因为绩点的原因我的学校同学去的CMU等名校,但至少有学上了。

2015年的8月,我来到美国纽约的学校报道。因为大一大二拉下的差距,我的学校并不算很好,但我下定决心毕业找工作的时候我一定要去行业内最好的公司,完成我大二时定下的目标。因为大四找过工作的关系,我深知找工作并不简单。在美国CS找工作最重要的就是刷题,于是我从入学的第一天起就开始刷题。然而我还是慢了一步,同学之中有的人在还没入学的时候就早早的刷起了题,而2016暑期实习的招聘比我想象中早的多,居然从2015的9月就开始招聘了。同学之中有人在11月就已经拿到了G,F,A公司的实习offer,而我因为一开始还没准备好没敢投面试都还没拿到几个,当时我只恨自己准备得太晚。

很快研一的寒假到了,为了丰富自己的简历,加大过简历关的机会,我拜托我爸在国内的T公司给我找份寒假的“实习”。然而因为工作地点的原因,我最后没有去T公司而是拜托我爸让我去了Z公司。这让在T公司内帮我安排实习的D博士有点不满。在我研一寒假回国的一次饭局上,他直言“现在有些留学生,在国外花了几十万的钱读书,结果在外面不好好学找不到工作,只能回国让父母帮忙安排找个三四千块钱的工作,这样的话为什么还要留学呢”。我知道他是在暗指我,我确实没有做出成绩,他说的是对的。我并不怪他,我只能默默发誓,自己一定要在美国作出成绩。

寒假的实习开始后,我上班时间工作,午休时间别人睡午觉的时候继续刷题,上下班在车上也用手机看着九章算法的视频,回到家吃完饭继续刷题。因为时差的关系我晚上会很困,有时候还会抱着电脑就睡着了。不过我还是坚持了下来,并在寒假结束前刷完了LC第一遍。里面的题除了两三道题以外,全是自己做出来的,这也让我对自己的算法有多点信心。

研一下学期,虽然最想去的G公司的面试挂了,但我顺利的拿到了A公司的实习offer。拿到A公司实习offer的那一刻我真的非常的高兴,当时我觉得我从大三开始努力的三年,我终于追上了大一大二拉下的两年的差距了(很多我本科的同学暑期都去了A公司实习)。

暑假我来到了A公司总部的西雅图开始了为期12周的实习。虽然我已经拿到了A公司的实习offer,但我最想去的公司仍然是G公司。因在下班后,还有周末,我仍然会不时去到当地的图书馆自习。当时我满心打着如意算盘:等实习结束后拿到A公司的转正offer,骑驴找马继续去试试G公司。

然而现实又一次跟我开了一个玩笑。在A公司的接近60%-70%转正率的情况下(没有具体统计过),我没有转正成功。在实习之前,我听说在A公司只要把分配的任务完成了就可以转正,于是我整个实习过程都在确保能够按时完成任务,却忽略了美国这边特别看重的一点:独创性。我虽然按时完成了任务,然而我使用的方法有些是沿用前人的方法,有些是直接按照导师建议的方法做,我只是将别人的思路转化成了代码而已,缺少自己的思考。当我听到我的经理宣布最终结果的那一刻,我心如死灰。身边很多同学都成功转正,然而我却失败了,还进入了冷冻期。那天晚上我一晚没睡着觉,脑海中不断反复着经理宣布结果时的样子。我当时在想,难道我努力了这么久,仍然追不上不了那两年的差距吗。

研二的九月到了,秋招开始了。有一次我在学院的图书馆遇到了一个A公司转正成功的同学,他怜悯的眼神让我感觉很受伤。损友也开我玩笑,他说“XXX都去A公司了,你怎么没去成,你怎么这么失败”。我当时暗暗发誓,自己一定要去到比A公司更好的公司。然而找工作的过程是相当漫长的,特别在美国,这边的人的效率没有国内那么高,基本上面一次出结果差不多要一两周。而找全职工作有时候要2,3次面试,6,7轮才能得到offer。那段时间基本上每天都在担心被拒的恐惧下度过,压力大到吃不下饭,只能吃一些当地很难吃的沙拉填肚子。实习的失败让我信心全无,D博士的话更像梦魇一样经常萦绕在我的脑海。我那段时间经常会想,人为什么要活的这么累,每天过的简单一点,就算自己可能成不了大事,但安安稳稳不也是很好的吗?关于这个问题,我其实现在都没有答案。但当时我决定坚持这一年,尽自己的全力去争取,如果最后实在不行的话也无悔了。当时我也开始看起了王阳明的心学。我发现那时候只有当我在看心学的时候我才能安定下来。我十分佩服王阳明的那种不动心的境界,对他的学说也非常的欣赏。那段时间王阳明心学成了我的减压的读物。我的女朋友霜和家人也给了我很大的帮助。很多的时候压力大的受不了的时候就会找他们倾诉,很多时候当你把心里的压力都说出去之后就会好受很多。

最后终于在研二11月(2016年11月)的时候,我先后的收到了F公司和G公司的全职offer。最后谈判权衡之后,我选择去了G公司,至此我终于达到了大二当年定下的目标。现在回顾这四年,我觉得如果我在大二的时候和我同学说我以后要去G公司,他们肯定都觉得我是在痴人说梦,其实即使是当时的自己都觉得这一定不可能。不过现在却切切实实的实现了。我觉得这一路走来,首先最重要的还是如王阳明先生所说的“立志”,也就是我大二时定下的目标,然后就是不断的向这个目标努力。我知道现在很多人觉得梦想都是空谈什么的,努力是没有作用的,但是我觉得我用实际行动证明了这一点。以后我也会继续向着大二时定下的目标努力,这次绝对不会再拉下别人”两年“了。

两个指针-TwoPointer

[两个指针] (Two Pointer)

两个指针的题目主要分成三种情况:

a.对撞型

  1. 2Sum 类
    例题: Trapping Water
    一个指针i指向数组头,一个指针j指向数组尾。

    1
    2
    3
    4
    5
    6
    7
    while i != j:
    if num[i] < num[j]:
    i += 1
    elif num[i] > num[j]:
    j -= 1
    else:
    i += 1
  2. Partition类
    例题: 将一个数组分成两部分,一部分小与k,一部分大于k
    一个指针i指向数组头,一个指针j指向数组尾。i表示在i之前的元素都小于k,j表示在j之后的元素都大于k。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    while i != j:
    while num[i] < k:
    i += 1
    while num[j] > k:
    j -= 1
    if i > j:
    break
    else:
    swap(i, j)

总结
通过对撞型指针优化算法,根本上其实要证明不用扫描多余状态

b.前向型

  1. 窗口类
    例题: Minimum Window Substring
    窗口类指针模板j

    1
    2
    3
    4
    5
    6
    7
    8
    j = 0
    for i in xrange(n):
    while j < n:
    if 满足条件:
    j += 1
    更新状态
    else 不满足条件:
    break
  2. 快慢类
    两个指针i, j的pace不同,可以用来探测一个链表是否有回路

总结
窗口类的问题根本上其实也是要证明不用扫描多余状态
快慢类的问题感觉和经常见的烧蜡烛的那种智力题很像。或者是环绕一圈来找list有没有cycle。

c.两个数组,两个指针

  1. 并行
    例题: Merge Two Sorted Array
    单纯的是否两个指针