LeetCode 2. Add Two Numbers 两数相加

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

您可以假设除了数字 0 之外,这两个数都不会以 0 开头。

示例:

1
2
3
输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807
阅读全文 »


LeetCode 1. Two Sum 两数之和

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

示例:

1
2
3
4
给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
阅读全文 »


写在前面

平时工作中大部分的时间都花在了理清复杂的业务逻辑,而对算法、代码优化的重视程度远远不够,所以就想利用空闲时间提升一下自己。由于自己本身并不是计算机专业,所以数据结构和算法相关的知识还在自己看书不断学习之中慢慢累积,这里刷题的一些小心得能够帮助记忆,找到一些灵感,若是对看到文章的网友有所帮助那就更好了。当然,大神们如果有建议或者指出我的一些错误我会感激不尽。

标签分类

按照官网的标签分类,列举出最多的十个类别吧。

数组、动态规划、数学、字符串、树、哈希表、深度优先搜索、二分查找、贪心算法、双指针。整体来说,题目涉及了很多数据结构,对于了解、巩固自己的数据结构知识有很大的帮助。

序号英文名称中文名称难度标签
1two-sum两数之和简单数组 哈希表
2add-two-numbers两数相加中等链表 数学
3longest-substring-without-repeating-characters无重复字符的最长子串中等哈希表 双指针 字符串 滑动窗口
4median-of-two-sorted-arrays寻找两个有序数组的中位数困难数组 二分查找 分治
5longest-palindromic-substring最长回文子串中等字符串 动态规划
26remove-duplicates-from-sorted-array删除排序数组中的重复项简单数组 双指针
122best-time-to-buy-and-sell-stock-ii买卖股票的最佳时机 II简单数组 贪心算法


定义

“A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.” 从已知的经验P中学习,解决任务T,并可以用P来度量完成情况。然后计算机根据经验E来提升在任务T上的表现P,就是机器学习。

阅读全文 »


准备工作

安装 Node.js

作者主要是在Win10下办公,所以此处就介绍Win10下的安装方法。 页面中间就有下载按钮。下载之后按照向导一步步来即可。 安装完成之后检查PATH环境变量是否配置Node.js: 在CMD中运行返回安装的版本号说明安装成功!

1
2
C:\Users\zm>node --version
v10.15.3

设置淘宝镜像

这里的淘宝不是那个淘宝:

淘宝 NPM 镜像:这是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。

官网上有详细的安装方式,这里就照搬一下。 > 使用说明: 你可以使用我们定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:

1
$ npm install -g cnpm --registry=https://registry.npmmirror.com
> 或者你直接通过添加 npm 参数 alias 一个新命令:
1
2
3
4
5
6
7
8
9
10
alias cnpm="npm --registry=https://registry.npmmirror.com \
--cache=$HOME/.npm/.cache/cnpm \
--disturl=https://npmmirror.com/mirrors/node \
--userconfig=$HOME/.cnpmrc"

# Or alias it in .bashrc or .zshrc
$ echo '\n#alias for cnpm\nalias cnpm="npm --registry=https://registry.npmmirror.com \
--cache=$HOME/.npm/.cache/cnpm \
--disturl=https://npmmirror.com/mirrors/node \
--userconfig=$HOME/.cnpmrc"' >> ~/.zshrc && source ~/.zshrc
安装的话就使用cnpm来代替npm就可以了,速度有明显的提升。

安装 Git

Git是用来做项目版本管理的,下载链接下载安装之后,以后的命令尽量在GitBash中输入。 如果不把源代码上传,那么后面自己用不到git命令,hexo deploy命令会调用git上传到你配置的git仓库。但是如果自己有两台以上电脑,或者需要在本地两个地方存放的话(在配置网址时可能需要国内一个网站,国外一个网站,后面会说),就需要将博客的源代码上传git,保证各工作空间代码一致。

首先我们新建一个仓库如下: Repository name (仓库名称): BlogResources Description (描述,可填): MyBlogTest 可以选择为Public对所有人可见或者选择Private私有 勾选Initialize this repository with a README,生成一个描述文件 .gitignore是上传时的忽略文件,这个可以后面修改添加,不急 Add a license可以使用MIT License 创建完成之后先放着,后面再用。

###常用Git命令
这里可能就能用到这么多,还有有关分支、合并的一些操作这里就不展开。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 配置全局用户Name和E-mail
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
// 初始化仓库
git init
// 添加文件到Git仓库
git add <file> //可以使用git add . 添加当前目录
// 提交添加的文件到Git仓库
git commit //然后会弹出一个vim编辑器输入提交说明
// 或者直接
git commit -m "你要输入的提交说明"
// 查看仓库当前的状态
git status
// 查看历史提交记录
git log
// 或者加上参数查看
git log --pretty=oneline
// 关联Github远程库:
git remote add origin https://github.com/zhaomin6666/MyTest.git
// 推送到远程仓库
git push -u origin master //注意:第一次提交需要加一个参数-u
// 查看远程库的信息
git remote

安装 Hexo

搭建Hexo环境:

1
npm install -g hexo-cli
初始化Hexo:在本地某个目录下,新建一个文件夹folder 右击Git Bash Here打开命令行工具,输入:

1
2
3
hexo init <folder>
cd <folder>
npm install

这样就初始化完成了,以后所有的Hexo命令都在这里执行。_config.yml是站点配置文件,theme/下的_config.yml是主题的配置文件。 在路径下,命令行(即Git Bash)输入以下命令启动服务器:

1
hexo server //或hexo s

浏览器访问网址: http://localhost:4000/

至此你的最基本的博客在本地已经搭建好了。

阅读全文 »
0%