共 11 页: 上一页 1 2 3 4 5 6 下一页 末页
摘要:103. 二叉树的锯齿形层次遍历 题意 给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 解题思路 和题目102一致; 实现 阅读全文
posted @ 2019-03-27 08:11 banananana 阅读 (50) 评论 (0) 编辑
摘要:102. 二叉树的层次遍历 题意 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 解题思路 递归:利用前序遍历的思想,在递归过程中记录下结点的深度,在对应深度将结点加入到结果中; 迭代:使用两个队列是因为一个用于记录当前层的结点,另外一个则记录下一层的结点,用于后面 阅读全文
posted @ 2019-03-27 07:58 banananana 阅读 (21) 评论 (0) 编辑
摘要:94. 二叉树的中序遍历 题意 给定一个二叉树,返回它的中序 遍历数组; 解题思路 递归:往左子结点深度递归,在其代码下面加入当前结点的值,接着往右子结点进行深度递归; 迭代:利用栈后进先出的特性,一直将左子结点都加入到栈中,直到其不存在时,将当前结点的值加入到结果列表中,接着将当前结点的右结点加入 阅读全文
posted @ 2019-03-27 07:10 banananana 阅读 (37) 评论 (0) 编辑
摘要:Redis和数据库同步问题 缓存充当数据库 比如说Session这种访问非常频繁的数据,就适合采用这种方案;当然了,既然没有涉及到数据库,那么也就不会存在一致性问题; 缓存充当数据库热点缓存 读操作 目前的读操作有个固定的套路,如下: 客户端请求服务器的时候,发现如果服务器的缓存中存在,则直接取服务 阅读全文
posted @ 2019-03-26 16:50 banananana 阅读 (2084) 评论 (1) 编辑
摘要:203. 移除链表元素 题意 删除链表中等于给定值 val 的所有节点; 解题思路 把下个结点的值赋值给当前结点,删除下一个结点; 增加一个多余的头结点,方便记录下前结点,将前结点指向下个结点,删除当前结点; 实现 阅读全文
posted @ 2019-03-26 09:12 banananana 阅读 (22) 评论 (0) 编辑
摘要:19. 删除链表的倒数第N个节点 题意 删除链表的倒数第N个结点 解题思路 先让快结点移动n个位置,接着再让慢结点和快结点同时移动,发现出慢结点就是要删除的结点,将前结点指向删除结点的下一个结点即可; 实现 阅读全文
posted @ 2019-03-26 06:28 banananana 阅读 (30) 评论 (0) 编辑
摘要:237. 删除链表中的节点 题意 删除给定的链表结点; 解题思路 其实是删除下一个结点,具体做法为将下一个链表的值赋值给当前的删除结点,并且将当前结点指向下下个结点;循环链表,不断的将下一个结点的值赋值给当前结点(需要注意删除的是尾部结点,因为题目提示说不会这么做所以就不用处理,其实也无法处理。。。 阅读全文
posted @ 2019-03-25 09:26 banananana 阅读 (30) 评论 (0) 编辑
摘要:141. 环形链表 题意 判断链表中是否有环; 提升: 空间复杂度为O(1) 解题思路 标记链表结点是否已经访问过(通过Python的属性很容易实现);使用集合记录下访问过的结点的id;慢结点每次走一步,快结点每次走两步,如果存在环的话两者肯定会相逢(考点!!); 标记链表结点是否已经访问过(通过P 阅读全文
posted @ 2019-03-25 08:30 banananana 阅读 (26) 评论 (0) 编辑
摘要:从0到后端工程师 因为下定决心想转到后端工程师,所以就把工作辞了,开始了漫长的寻找工作之旅。 一 面的是一家上海的创业公司,地址比较偏远,找了半天,过去的时候还发现他们在搬家,心想,创业公司真不容易啊,什么都要自己来。 期间他问到了我的Python基础知识,我答得支支吾吾,各种不确定,还有被问到了后 阅读全文
posted @ 2019-03-22 11:43 banananana 阅读 (727) 评论 (1) 编辑
摘要:2. 两数相加 题意 倒序的数字进行相加; 解题思路 数字进行倒序还算是简单的,因为我们正常的运算也是从按照这个顺序,正好可以方便计算; 实现中的两个方法是一样的,不太懂为啥下面的运行时间查这么多; 实现 提升 如果这个链表存储的数字的顺序是正常的话,那么有两种方法: 将链表进行倒序,接着就和上面的 阅读全文
posted @ 2019-03-22 10:00 banananana 阅读 (25) 评论 (0) 编辑
摘要:143. 重排链表 题意 给定一个单链表 L:L0→L1→…→L**n-1→Ln , 将其重新排列后变为: L0→L**n→L1→L**n-1→L2→L**n-2→… 并且需要实际的进行节点交换; 解题思路 拆分成两条链表:找到中间的结点;将链表拆分成左右两条链表,并且将右边的链表进行反转;将左右两 阅读全文
posted @ 2019-03-21 17:19 banananana 阅读 (74) 评论 (0) 编辑
摘要:817. 链表组件 题意 求链表中一段最长连续结点的值(值必须出现在列表G中,不要求顺序)构成的集合的个数; 解题思路 一开始还以为是要求顺序的,想说用递归来做,发现链表的值只是出现在列表中而已,因此判断链表中的值出现在列表中的次数(连续不算)即可,有点类似移动窗口的思路; 下面的实现是优化了几次, 阅读全文
posted @ 2019-03-21 10:55 banananana 阅读 (56) 评论 (0) 编辑
摘要:328. 奇偶链表 题意 奇数的链表结点插在偶数的链表结点前面; 解题思路 维护两条链表,分别记录下奇数和偶数的链表结点,最后将偶数链表的起始结点连接到奇数链表的末尾结点后面; 实现 阅读全文
posted @ 2019-03-21 10:11 banananana 阅读 (150) 评论 (0) 编辑
摘要:147. 对链表进行插入排序 题意 对链表进行插入排序 解题思路 利用插入排序的思想,当前节点和下一个节点进行比较,找到当前值大于下一个值的节点A,接着将该节点A的方向指向节点的下下个位置C,找到最后一个个比当前节点的下一个节点B的值还有小的节点E,将节点B的方向指向节点E的下一个节点Q,再将节点E 阅读全文
posted @ 2019-03-17 21:40 banananana 阅读 (97) 评论 (0) 编辑
摘要:24. 两两交换链表中的节点 题意 两两交换链表中的结点 解题思路 递归找终止条件:本题终止条件很明显,当递归到链表为空或者链表只剩一个元素的时候,没得交换了,自然就终止了。找返回值:回给上一层递归的值应该是已经交换完成后的子链表。单次的过程:因为递归是重复做一样的事情,所以从宏观上考虑,只用考虑某 阅读全文
posted @ 2019-03-17 19:51 banananana 阅读 (50) 评论 (0) 编辑
摘要:109. 排序链表 题意 在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。 解题思路 常数集空间复杂度:将其转化为数组; 时间复杂度为O(nlogn):用归并排序; 实现 阅读全文
posted @ 2019-03-16 14:52 banananana 阅读 (31) 评论 (0) 编辑
摘要:Django Filter源码解析 最近在看Django-FIlter项目的源码,学习一下别人的开发思想; 整体介绍 首先,我从其中一个测试用例作为入口,开始了debug之路,一点一点的断点,分析它的执行顺序,如图: ok,下面从代码的层面进行分析: url view函数,这里的实现方式应该是借鉴了 阅读全文
posted @ 2018-10-03 02:48 banananana 阅读 (652) 评论 (0) 编辑
摘要:NGINX简单总结 特点总结 nginx有一个master进程和多个worker进程,master进程是主要用来管理worker进程,管理的内容包括以下内容:接收来自外界的信号,向各个woker进程发送信号,监控worker进程的运行状态,当worker进程退出后,会自动重新启动新的worker进程 阅读全文
posted @ 2018-09-25 00:01 banananana 阅读 (222) 评论 (0) 编辑
摘要:orm优化 数据库技术进行优化,包括给字段加索引,设置唯一性约束等等; 查询过滤工作在数据库语句中做,不要放在代码中完成(看情况); 如果要一次查询出集合的数量,使用count函数,而不是len函数,但是如果后面还需要到集合,那就用len,因为count还需要进行一次数据库的操作; 避免过多的使用c 阅读全文
posted @ 2018-08-18 12:04 banananana 阅读 (262) 评论 (0) 编辑
摘要:VIM学习总结 1. 移动光标 命令解释w 移动光标到下一个单词的开头(标点符号也算是一个单词,以下均如此)e 移动光标到下一个单词的结尾b 移动光标到上一个单词的开头0 移动光标到本行最开头,包括空格^ 移动光标到本行最开头的字符处,不包括空行(和上面不一样)$ 移动光标到本行的字符结尾处,不包括 阅读全文
posted @ 2018-06-18 15:50 banananana 阅读 (110) 评论 (0) 编辑
共 11 页: 上一页 1 2 3 4 5 6 下一页 末页