- 博客(10)
- 收藏
- 关注

原创 编程解惑
1.for循环中i++和++i的区别?(1)在功能上无区别;(2)效率有区别,网上数据告诉我,i++比++i多创建了一个临时对象,因此速度会慢,但是自己刷题发现,i++比++i要快。...
2019-03-18 10:13:45
155
原创 剑指offer(26-30)
26.分解让复杂问题简单:二叉搜索树与双向链表题目描述:27.分解让复杂问题简单:字符串的排列题目描述:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。解法思路:中序遍历即可。/*struct TreeNode { int val; struct TreeNode *left; struct Tr...
2019-03-22 09:49:52
178
原创 剑指offer(21-25)
21.输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)解法思路:模拟压栈过程,建立辅助栈,(1)将压栈序列元素压入辅助栈,比较压入元素与出栈...
2019-03-21 12:34:59
284
原创 剑指offer(16-20)
16.输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。解法思路:(1)判空:两链表均为空,返回空;一链表为空,返回另一链表;均非空,继续;(2)确定新链表头结点,比较两链表头结点得出;(3)依次遍历两链表,比较两链表各结点的值,小则加入新链表;(4)当一链表到达尾结点,则结束循环,将另一链表直接加在新链表后面。/*struct List...
2019-03-20 12:17:55
247
原创 排序算法总结(下)
文章目录八、计数排序(Counting Sort)九、桶排序(Bucket Sort)十、基数排序(Radix Sort)八、计数排序(Counting Sort)计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。1.算法简介计数排序(Counting sort)是一种稳定的排序算法。计数排序使...
2019-03-19 19:18:02
202
原创 排序算法总结(中)
文章目录五、归并排序(Merge Sort)六、快速排序(Quick Sort)七、堆排序(Heap Sort)五、归并排序(Merge Sort)和选择排序一样,归并排序的性能不受输入数据的影响,但表现比选择排序好的多,因为始终都是O(n log n)的时间复杂度。代价是需要额外的内存空间。1.算法简介归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide an...
2019-03-19 18:55:28
190
原创 排序算法总结(上)
排序算法总结排序分类:排序算法对比:一、冒泡排序(Bubble Sort)1.算法描述冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。2.算法描述和实现具体算法描述如下:(1...
2019-03-19 18:26:45
266
原创 剑指offer(11-15)
11.输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。法一:解法思路:设置标志数flag = 1,逐次右移1所在的位置,将flag与输入整数进行按位与运算,即可比较出输入整数与flag中当前1所对应的位置是否为0;class Solution {public: int NumberOf1(int n) { int count = 0; ...
2019-03-19 11:09:54
123
原创 剑指offer(6-10)
6.把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。解法思路:输入数组为非减排序,因此,遍历比较相邻两个数,一旦后一个数比前一个数小,那么这个数即为最小值。class ...
2019-03-18 13:05:38
210
原创 剑指offer(1-5)
题目描述:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解法思路:1.把每一行看成有序递增的数组,利用二分查找,通过遍历每一行得到答案,时间复杂度是nlogn;public class Solution { public boolean ...
2019-02-01 16:47:41
196
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人