一、问题 有 10 亿个不重复的数字,内存中只能放进 1 万个数,怎么找到最大的 10 万个数字? 这道题的思路是,先拿10000个数建堆,然后一次添加剩余元素,如果大于堆顶的数(10000中最小的),将这个数替换堆顶,…
分类:数据结构与算法
数组按数字出现频次排序
题目 同时也是百度2018秋招的笔试题,LeetCode 451–根据字符出现频率排序的变形 题意为从一个乱序数组中,将其中的整数按照出现的频次多少来排列,比如输入为 [1,2,1,2,3,3,1,6,4,4,4,4],…
计算逆序数:在归并和快排两种排序过程中求得逆序数的方法比较
归并排序是将数列a[l,h]分成两半a[l,mid]和a[mid+1,h]分别进行归并排序,然后再将这两半合并起来。在合并的过程中(设l<=i<=mid,mid+1<=j<=h),当a[i]<…
【数据结构与算法】之深入解析常用的五大算法设计策略
一、分治 ① 基本思想 在计算机科学中,分治法是一种很重要的算法,字面上的解释是“分而治之”,就是将一个难以直接解决的大问题,分割成 n 个规模较小的子问题,这些子问题相互独立,且与原问题相同,然后各个击破,分而治之。这…
如何计算完全二叉树的深度
如何计算完全二叉树的深度 一棵有12个节点的完全二叉树,其深度是()一棵有12个节点的完全二叉树,其深度是() 4 5 3 6 在此之前我想说一下三种二叉树 Full Binary Tree Perfect Binary…
KMP算法&next数组详解
KMP算法详解 文章目录 KMP算法详解 前言 一、示例 二、用朴素的字符串匹配算法 三、KMP算法实现 1、KMP算法思路 2、next数组的本质 3、next数组带入思路实现 4、next数组的求法 四、代码实现 C…
Word字体和段落设置
word的使用技巧有很多,但是呢,我要和大家分享一下word的使用技巧里面的字体和段落设置吧。 人们通常排版,那怎样排版会更加好看而且看起来比较专业呢? 1.首先进入到word的软件中选择一个空白文档,然后在随便在网站克…
二分查找--寻找两个有序数组的中位数
力扣—寻找两个有序数组的中位数,下面看一下题目 题目叙述 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(l…
02动态数组
1、动态数组是什么 动态数组就是可以自动扩容的数组,元素可以自由地被添加/插入到相应的位置,也可以很方便地移除某个位置上的元素。在Java中的ArrayList集合就是一个动态数组。 2、为什么要使用动态数组 普通数组的…
数据结构之流水线中的相关问题 数据相关,控制相关,结构相关
三、流水线中的相关问题 工厂里的流水线不能连续工作,可能是原料不到位,流水线上有员工不到位等原因。同理计算机CPU内部也有不能连续工作的情况,叫流水线阻塞。 流水线不能连续工作原因可能有: ①编译形成的程序不能发挥流水线…
「算法导论」:到底什么是循环不变式?
算法导论第二章中提出了一个概念---“循环不变式”,书上说: …
简单的算法题-总收益最大化
题目描述 某公司雇有N名员工,每名员工可以负责多个项目,但一个项目只能交由一名员工负责。现在该公司接到M个项目,令Aij表示第i名员工负责第j个项目所带来的收益,那么如果项目分配得当,总收益最大是多少? 输入 第一行两个…