自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

转载 剑指offer 51. 数字排列

题目: 输入一组数字(可能包含重复数字),输出其所有的排列方式。 样例: 输入:[1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 方法:(回溯法) 时间复杂度 O(n!) 1.先将所有数从小到大排序,使得相同的数排在一起; 2.从左到右依次枚举每个数,每次将它放在一个空位; 对于相同数,我们人为定序,避免重复计算 3.在dfs时记录一个额外的状态,记录上一个相同数存放的位置 start,我们在枚举当前数时,只枚举

2020-05-14 17:46:19 129

原创 剑指offer49. 二叉搜索树与双向链表

输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。 要求不能创建任何新的结点,只能调整树中结点指针的指向。 注意: 需要返回双向链表最左侧的节点。 例如,输入下图中左边的二叉搜索树,则输出右边的排序双向链表。 思路:实际上中序遍历的遍历顺序就是双线链表的建立顺序,用一个pre指针保存当前遍历结点的前一个结点,最后找到双向链表的头结点返回。 /** * Definition for a binary tree node. * struct TreeNode { * int val;

2020-05-13 11:17:36 89

转载 剑指offer55. 连续子数组的最大和

题目: 输入一个 非空 整型数组,数组里的数可能为正,也可能为负。 数组中一个或连续的多个整数组成一个子数组。 求所有子数组的和的最大值。 要求时间复杂度为O(n)。 样例: 样例 输入:[1, -2, 3, 10, -4, 7, 2, -5] 输出:18 class Solution { public://遇到小于0的元素,舍弃前面的数之和,sum重置为0,大于0的元素直接相加,比较最大值 int maxSubArray(vector<int>& nums) {

2020-05-13 11:04:08 83

原创 剑指offer54. 数据流中的中位数

如何得到一个数据流中的中位数? 如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。 如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。 样例: 输入:1, 2, 3, 4 输出:1,1.5,2,2.5 解释:每当数据流读入一个数据,就进行一次判断并输出当前的中位数。 思路:维护一个大根堆和一个小根堆,大根堆保存较小的那一半,小根堆保存较大的那一半。每次默认向大根堆里push元素。若插入元素逆序,则对换大,小根堆的堆顶元素保证递增。当大根堆元素个数超过小

2020-05-12 22:52:57 99

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除