快牵着我的袜子

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  43 随笔 :: 0 文章 :: 1 评论 :: 22687 阅读

随笔分类 -  算法(基础)

基础算法
摘要:给定一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。 请返回 nums 的动态和。 class Solution { public: vector<int> runningSum(vector<int>& nums) { 阅读全文
posted @ 2020-08-04 20:46 快牵着我的袜子 阅读(105) 评论(0) 推荐(0) 编辑

摘要:一、蓄水池抽样 收到一堆的数据包,数据包数量N很大,且N直到处理完所有数据之前都不可知, 请问如何在只遍历一遍数据(O(N))的情况下,能够随机选取出m个不重复的数据? 场景包含3个前提条件 1、数据包数量N很大,不可知,所以不能直接在N个数据包中取随机数 2、时间复杂度O(N),只能遍历一遍。 3 阅读全文
posted @ 2019-10-31 17:12 快牵着我的袜子 阅读(138) 评论(0) 推荐(0) 编辑

摘要:一、前提 1、二叉树 2、叶子带权值 3、带权路径长度,根节点到各个叶子节点的路径与相应叶子节点权值的乘机之和 4、带权路径长度最小的二叉树为哈夫曼树 二、基本思想 1、选取所有分支中权值最小的两个两棵树(或者节点),将其作为左右子树构造一个新的二叉树。 2、删除小的两棵树,将新构造的树加入到选择中 阅读全文
posted @ 2019-10-21 09:49 快牵着我的袜子 阅读(154) 评论(0) 推荐(0) 编辑

摘要:冒泡排序 1、经典冒泡排序 经典的冒泡排序为从左边开始依次判断排序,每次最终仅将一个数向后冒泡,而对于其他数的排序没有什么帮助;如果已经所有元素已经是有序的,依然执行循环。 2、优化冒泡排序 优化地方:(1)从后往前循环,若前者大于后者,则交换数据,这样能够使其他的数往前排。 (2)设置标志数,如果 阅读全文
posted @ 2019-09-21 09:26 快牵着我的袜子 阅读(1007) 评论(0) 推荐(0) 编辑

摘要:快速排序 快速排序的时间复杂度为O(logn) 注意:快速排序主要是标志数的选取,如果所选的数恰好为最小或者最大,则是最糟糕的情况,即一轮下来数据没有发生变化! 如何选取中间的标志数成为了算法的关键。主要做法有三选一,九选一法。三选一即选取左端、右端和中间三个数进行比较,使用中间的数作为标志数。 九 阅读全文
posted @ 2019-09-19 19:33 快牵着我的袜子 阅读(515) 评论(0) 推荐(0) 编辑

摘要:通用的算法,即泛型算法,大多数定义在头文件algorithm中,标准库还在numeric中定义了一组数值泛型算法。 一般情况下,这些算法不直接操作容器,而是遍历由两个迭代器指定的一个元素范围来操作。 例如find()函数,auto result=find(vec.cbegin(),vec.cend( 阅读全文
posted @ 2019-09-04 15:04 快牵着我的袜子 阅读(167) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示