算法
文章平均质量分 91
随时从零开始
一个迷途知返的浪子!
展开
-
LeetCode Swap Nodes in Pairs
Given a linked list, swap every two adjacent nodes and return its head.For example,Given 1->2->3->4, you should return the list as 2->1->4->3.Your algorithm should use only constant space. Y原创 2015-11-23 16:23:46 · 399 阅读 · 0 评论 -
next_permutation原理剖析
最近刷leetcode的时候遇见next permutation这道题,感觉挺有意思的一个题目,递归的方法是较简单并且容易想到的,在网上搜了其余的解法,就是std::next_permutation非递归解法,但是让人不是很舒服的就是关于原理的部分,千篇一律的都是摘抄《STL源码剖析》,也就是这样的。在当前序列中,从尾端往前寻找两个相邻元素,前一个记为*i,后一个记为*ii,并且满足*i转载 2016-05-08 17:41:04 · 422 阅读 · 0 评论 -
堆排序 及 优先队列
思想堆排序,顾名思义,就是基于堆。因此先来介绍一下堆的概念。堆分为最大堆和最小堆,其实就是完全二叉树。最大堆要求节点的元素都要大于其孩子,最小堆要求节点元素都小于其左右孩子,两者对左右孩子的大小关系不做任何要求,其实很好理解。有了上面的定义,我们可以得知,处于最大堆的根节点的元素一定是这个堆中的最大值。其实我们的堆排序算法就是抓住了堆的这一特点,每次都取堆顶的元素,将其放在序列最后面,然后原创 2016-07-04 10:23:14 · 627 阅读 · 0 评论