草庐IT

链表算法题解题技巧归纳总结

最近集中刷了一批链表的题型,在这里总结一下解题技巧,以及对应题目的解题思路。解题思路并不会细致入微,主要是为了总结归类,并且希望用几句话来激发灵感,权当是没思路时的指引以及以后复习时的提纲了。还有一些重要或者总会绕晕的经典题目,也在这里记录一下代码的实现逻辑。一、解决链表题型的两个技巧遇到链表相关的题,无论问题是什么,先要想想是不是可以用上以下的两个技巧。哨兵节点双指针1、哨兵节点哨兵节点是一个非常常用的链表技巧,在处理链表边界问题的场景下,可以减少我们代码的复杂度。主要解决的问题如下:处理完一条链表后,需要返回这个链表的头结点。我们在一开始的时候使用哨兵节点(dummy),让它的next节点

链表算法题解题技巧归纳总结

最近集中刷了一批链表的题型,在这里总结一下解题技巧,以及对应题目的解题思路。解题思路并不会细致入微,主要是为了总结归类,并且希望用几句话来激发灵感,权当是没思路时的指引以及以后复习时的提纲了。还有一些重要或者总会绕晕的经典题目,也在这里记录一下代码的实现逻辑。一、解决链表题型的两个技巧遇到链表相关的题,无论问题是什么,先要想想是不是可以用上以下的两个技巧。哨兵节点双指针1、哨兵节点哨兵节点是一个非常常用的链表技巧,在处理链表边界问题的场景下,可以减少我们代码的复杂度。主要解决的问题如下:处理完一条链表后,需要返回这个链表的头结点。我们在一开始的时候使用哨兵节点(dummy),让它的next节点

算法题--从尾到头打印链表

5要求时间限制:1秒空间限制:32768K题目描述输入一个链表,从尾到头打印链表每个节点的值解题思路链表必须要从头开始访问,如果需要将打印顺序颠倒,可以利用栈的特性。有时候方法就是这么简单--如果想展示你的算法能力,可以写成递归--深度优先搜索代码/*structListNode{intval;structListNode*next;ListNode(intx):val(x),next(NULL){}};*/classSolution{public:vectorprintListFromTailToHead(ListNode*head){vectorres;stacktemp;while(he

算法题--从尾到头打印链表

5要求时间限制:1秒空间限制:32768K题目描述输入一个链表,从尾到头打印链表每个节点的值解题思路链表必须要从头开始访问,如果需要将打印顺序颠倒,可以利用栈的特性。有时候方法就是这么简单--如果想展示你的算法能力,可以写成递归--深度优先搜索代码/*structListNode{intval;structListNode*next;ListNode(intx):val(x),next(NULL){}};*/classSolution{public:vectorprintListFromTailToHead(ListNode*head){vectorres;stacktemp;while(he

Elasticsearch Head插件使用小结

作者:崔雄华1ElasticsearchHead是什么ElasticSearchhead就是一款能连接ElasticSearch搜索引擎,并提供可视化的操作页面对ElasticSearch搜索引擎进行各种设置和数据检索功能的管理插件,如在head插件页面编写RESTful接口风格的请求,就可以对ElasticSearch中的数据进行增删改查、创建或者删除索引等操作。类似于使用navicat工具连接MySQL这种关系型数据库,对数据库做操作。2本地安装下面简单介绍下ES环境安装和ElasticsearchHead在chrome浏览器中插件安装。2.1ES安装安装链接:https://www.el

Elasticsearch Head插件使用小结

作者:崔雄华1ElasticsearchHead是什么ElasticSearchhead就是一款能连接ElasticSearch搜索引擎,并提供可视化的操作页面对ElasticSearch搜索引擎进行各种设置和数据检索功能的管理插件,如在head插件页面编写RESTful接口风格的请求,就可以对ElasticSearch中的数据进行增删改查、创建或者删除索引等操作。类似于使用navicat工具连接MySQL这种关系型数据库,对数据库做操作。2本地安装下面简单介绍下ES环境安装和ElasticsearchHead在chrome浏览器中插件安装。2.1ES安装安装链接:https://www.el

Git 常用命令总结

1.状态1.1文件状态2.分支2.1分支常用命令gitbranchxxx:新建分支gitcheckoutxxx:切换分支gitcheckout-bxxx:新建分支并切换到该分支(相当于上面两条命令)gitbranch-dxxx:删除分支gitbranch:查看分支列表gitpushorigin--deletexxx:删除远程分支gitfetch:从服务器上拉取数据,当gitfetch命令从服务器上抓取本地没有的数据时,它并不会修改工作目录中的数据,它只会获取数据然后让你自己合并。gitpull:在大多数情况下它的含义是一个gitfetch紧接着一个gitmerge/gitrebase命令2.2

Git 常用命令总结

1.状态1.1文件状态2.分支2.1分支常用命令gitbranchxxx:新建分支gitcheckoutxxx:切换分支gitcheckout-bxxx:新建分支并切换到该分支(相当于上面两条命令)gitbranch-dxxx:删除分支gitbranch:查看分支列表gitpushorigin--deletexxx:删除远程分支gitfetch:从服务器上拉取数据,当gitfetch命令从服务器上抓取本地没有的数据时,它并不会修改工作目录中的数据,它只会获取数据然后让你自己合并。gitpull:在大多数情况下它的含义是一个gitfetch紧接着一个gitmerge/gitrebase命令2.2

朝花夕拾-链表(二)

"Goodcodeisitsownbestdocumentation."-SteveMcConnell“好代码本身就是最好的文档。”——史蒂夫·麦克康奈尔0x00大纲目录0x00大纲0x01前言数据与结构的解耦offsetofcontainer_of通用链表0x02链表节点0x03创建链表0x04插入节点任意位置的插入插入到最前插入到最后0x05删除节点0x06替换节点0x07遍历和获取节点数据遍历链表获取节点数据0x08小结0x01前言数据与结构的解耦在上篇文章,我们通过将链表的节点放在具体数据类型的结构体内,这样,抽象(链表结构)不再依赖于细节(数据类型),细节(数据类型)依赖于抽象(链表

朝花夕拾-链表(二)

"Goodcodeisitsownbestdocumentation."-SteveMcConnell“好代码本身就是最好的文档。”——史蒂夫·麦克康奈尔0x00大纲目录0x00大纲0x01前言数据与结构的解耦offsetofcontainer_of通用链表0x02链表节点0x03创建链表0x04插入节点任意位置的插入插入到最前插入到最后0x05删除节点0x06替换节点0x07遍历和获取节点数据遍历链表获取节点数据0x08小结0x01前言数据与结构的解耦在上篇文章,我们通过将链表的节点放在具体数据类型的结构体内,这样,抽象(链表结构)不再依赖于细节(数据类型),细节(数据类型)依赖于抽象(链表