- 博客(7)
- 收藏
- 关注
原创 剑指offer(28~30)数组中出现次数超过一半的数字--最小的K个数--连续子数组的最大和
文章目录数组中出现次数超过一半的数字最小的K个数数组中出现次数超过一半的数字数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。class Solution {public: int MoreThanHalfNum_Solut...
2019-02-17 18:25:50 789
原创 九种常见排序的比较
文章目录比较排序非比较排序比较排序由上表不难得出下面这几个重要的点:从平均时间性能而言,快速排序最佳,其所需时间最佳,但快速排序在最坏情况下的时间性能不如堆排序和归并排序。堆排序和归并之间,当n较大时,归并排序所需时间省,但是所需的辅助空间却是最大的,堆本身不是专门为排序产生的,而是解决优先级队列和TopK问题。几种简单排序中,除了希尔排序外的所有插入排序,冒泡排序,和选择排序中,直...
2019-02-15 17:04:14 712
原创 计数排序和桶排序
上述的排序方法是博主的前四篇博客介绍的常见排序方法,它们有一个共同的特征,都是比较排序,今天我们介绍一下非比较排序,常见的非比较排序有:计数排序、基数排序。文章目录计数排序桶排序/基数排序(假设待排序数组最多两位)计数排序计数排序(Count Sort)是一个非基于比较的排序算法,该算法于1954年由 Harold H. Seward 提出。它的优势在于在对一定范围内的整数排序时,它的复杂...
2019-02-15 16:26:15 445
原创 数据结构:堆
堆是将一组数据按照完全二叉树的存储顺序,将数据存储在一个一维数组中的结构。堆有两种结构,一种称为大顶堆,一种称为小顶堆,如下图。小顶堆:任意结点的值均小于等于它的左右孩子,并且最小的值位于堆顶,即根节点处。大顶堆:任意结点的值均大于等于它的左右孩子,并且最大的值位于堆顶,即根节点处。...
2019-02-15 11:45:05 616 1
原创 剑指offer(25~27)复杂链表的复制--二叉树与双向链表--字符串的排列
25、复杂链表的复制输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)思路分析大致分三步1)复制旧链表节点:将旧链表的节点一个个复制后插入到新链表,像下图那样,A是旧节点,A’是新节点。2)置random指向:如上图所示,旧...
2019-02-07 19:33:40 927
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人