会员
周边
众包
新闻
博问
闪存
赞助商
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
醉晚
博客园
首页
博问
闪存
新随笔
订阅
管理
2019年5月3日
异或运用
摘要: 异或在求解类似一个数组中只有一个数字出现了一次,其余数字出现了两次问题上作用比较显著。 1)一个数组中只有一个数字出现了一次,其余数字出现了两次。 求解的原理是:两个相同的数字异或的结果是0,所以最后求解出来的结果是只出现一次的那个数字。 2)一个数组中有两个数字只出现了一次,这两个数字不相同,其余
阅读全文
posted @ 2019-05-03 14:19 醉晚
阅读(297)
评论(0)
推荐(0)
编辑
2019年4月8日
链表操作
摘要: 1.求单链表中间的节点,其中如果单链表的节点个数为偶数n,则节点为n/2-1,当节点个数为奇数时,节点为中间那个节点。 解法:使用慢指针以及快指针,快指针移动两次,慢指针移动一次,这样可以找到中间节点。 2.求单链表中的倒数第k个节点,k为合适的值 解法:使用两个指针,一个指针先移动k次,然后两个指
阅读全文
posted @ 2019-04-08 20:23 醉晚
阅读(473)
评论(0)
推荐(0)
编辑
2019年4月7日
单调栈
摘要: 单调栈是一种栈的特殊的用法。 单调栈中包括单调增栈,单调减栈。 以下说明单调栈的两种基本的用法: 1.单调增栈用来求解vector中每个元素前一个比其小的元素,并且时间复杂度是O(n). 2.单调减栈用来求解vector中每个元素下一个比其小的元素,时间复杂度同样是O(n)。 单调增栈用来实现1的代
阅读全文
posted @ 2019-04-07 20:10 醉晚
阅读(314)
评论(0)
推荐(0)
编辑
2019年4月5日
单链表反转
摘要: 单链表反转是一个经典的面试题。 单链表反转问题可以类比成一个倒叙的数列进行插入排序,实际上是将第二个开始的每个元素提取到链表的最前面。 单链表数据结构定义: 有三个问题需要注意: 1.在将第二个元素开始的每个元素提取到链表最前面时,需要将第一个元素指向提取元素的后一个元素(否则循环无法进行)。 2.
阅读全文
posted @ 2019-04-05 01:05 醉晚
阅读(218)
评论(0)
推荐(0)
编辑
2019年3月23日
深度优先搜索+递归
摘要: 一般涉及到数学中的组合求解的问题一般使用的问题,可以通过修改dfs算法+递归进行相应的求解。 此问题的 解法一般是进行对给出的 字符串进行深度搜索,需要处理各种边界条件,同时需要准确的判定出递归的终止条件。 这类问题一般是大致上相同,主要是处理边界条件的不同。 下面例题为leetcode上一道经典例
阅读全文
posted @ 2019-03-23 16:26 醉晚
阅读(791)
评论(0)
推荐(0)
编辑
2019年3月20日
KMP算法
摘要: 字符串匹配可以采用暴力匹配法 暴力匹配法的思路为: 如果用暴力匹配的思路,并假设现在文本串S匹配到 i 位置,模式串P匹配到 j 位置,则有: 当然时间复杂度更低是所谓的KMP算法,该算法时间复杂度为O(m+n),空间复杂度为O(n)。 m为被匹配的串的长度,n为进行匹配的模式串的长度。 以下说明K
阅读全文
posted @ 2019-03-20 22:45 醉晚
阅读(163)
评论(0)
推荐(0)
编辑