一、题目描述给定多个可能重叠的区间,找出重叠区间的个数。举例如下:输入:[1,5],[10,15],[5,10],[20,30]输出:2 说明:题意应该是找出重叠区间中区间的最大个数,当没有区间重叠时,重叠个数最大为1,比如输入为:[1,5],[10,15],则输出为1;输入为:[1,2],[2,3],[3,4],[4,5],则输出为2(重叠区间相互之间都要有交集);输入为:[1,7],[2,5],[3,4],[8,15],[9,17],[20,25],则输出为3。 二、题目分...
现在通过一则故事来学习paxos的算法的流程(2阶段提交),有2个Client(老板,老板之间是竞争关系)和3个Acceptor(政府官员):现在需要对一项议题来进行paxos过程,议题是“A项目我要中标!”,这里的“我”指每个带着他的秘书Proposer的Client老板。Proposer当然听老板的话了,赶紧带着议题和现金去找Acceptor政府官员。作为政府官员,当然想谁给的钱多就把项目给谁。Proposer-1小姐带着现金同时找到了Acceptor-1~Acceptor-3官员,1与...
/*首先呢,手动@一下逸安dalao。前几天一是考试没时间,再就是这个算法我只是懂,没写过题所以不敢写一个专题博客。终于抽出时间写一下这个noip基本不会涉及的算法啦*/首先我们知道回文的定义:正反读都是一样的字符串叫做回文串。如:madam,lol,oppo,zz,甚至连单字符都可以被称为回文(串)。上面的例子可以看出,回文串可以分为两种:奇数回文和偶数回文。如果我们想知道以一个字符串的所有子串中,最长的回文串是多长,怎么...
一、最短路径 ①在非网图中,最短路径是指两顶点之间经历的边数最少的路径。 AE:1 ADE:2 ADCE:3 ABCE:3 ②在网图中,最短路径是指两顶点之间经历的边上权值之和最短的路径。 AE:100 ADE:90 ADCE:60 ABCE:70 ③单源点最短路径问题 问题描述:给定带权有向图G=(V, E)和源点v∈V,求从v到G中其余各顶点的最短路径。 应用实例——计算机网络传输的问题:怎样找到一种最经济的方式,从一台计算...
算法四:回溯和分支界定 回溯:寻找问题的解的一种可靠的方法是首先列出所有候选解,然后依次检查每一个,在检查完:所有或部分候选解后,即可找到所需要的解。理论上,当候选解数量有限并且通过检查所有或部分候选解能够得到所需解时,上述方法是可行的。不过,在实际应用中,很少使用这种方法,因为候选解的数量通常都非常大(比如指数级,甚至是大数阶乘),即便采用最快的计算机也只能解决规模很小的问题。对候选解进行系统检查...
Q-learning 相关的资料 https://www.youtube.com/watch?v=V1eYniJ0Rnkgoogle deepmind 的Q-learning 算法打游戏的一个很酷的视频。请观看 1.http://www.pysnap.com/reinforcement-learning-in-python/ 2.http://www.nervanasys.com/demystifying-deep-reinforcement-learning/ 3.http://wanghaitao8118.blog.163.com/blog/static/13986977220153811210319/ 4.https://github.com/nivwusquorum/tensorflow-deepq 【开源:Tensorflo...
为什么要了解内核的调度策略呢?呵呵,因为它值得我们学习,不算是废话吧。内核调度程序很先进很强大,管理你的LINUX上跑的大量的乱七八糟的进程,同时还保持着对用户操作的高灵敏响应,如果可能,为什么不把这种思想放到自己的应用程序里呢?或者,有没有可能更好的实现自己的应用,使得操作系统能够以自己的意志来分配资源给自己的进程?带着这两个问题来看看KERNEL。首先回顾上我们开发应用程序,基本上就两种类型,1、IO消耗型...
什么是基础呢? 就是要把我们大学所学的离散数学,算法与数据结构,操作系统,计算机体系结构,编译原理等课程学好。对计算机的体系,CPU本身,操作系统内核,系统平台,面向对象编程,程序的性能等要有深层次的掌握。要编写出优秀的代码同样要扎实的基础,如果数据结构和算法学的不好,怎么对程序的性能进行优化,怎样从类库中选择合适的数据结构。如果不了解操作系统,怎样能了解这些开发工具的原理,它们都是基于操作系统的。不...
这是最基本的两种排序算法,比它效率高的还有归并排序,堆排序,快速排序等算法,作为一个IT民工应该好好掌握。 冒泡排序和选择排序都有两层循环,下面逐一介绍: 冒泡排序: 1.外层循环,控制冒泡次数,起始从loop=1开始,结束标识是loop<length,循环length-1次(从数组的第二个数开始冒泡)。 2.内层循环,选出对应轮的最大数,即第K轮冒泡选出的是第N-k-1大的数,故循环从loop=0开始,结束标志loop<N-k,循环N-k次...
遗传算法 ( GA , Genetic Algorithm ) ,也称进化算法 。 遗传算法是受达尔文的进化论的启发,借鉴生物进化过程而提出的一种启发式搜索算法。因此在介绍遗传算法前有必要简单的介绍生物进化知识。 一.进化论知识 作为遗传算法生物背景的介绍,下面内容了解即可: 种群(Population):生物的进化以群体的形式进行,这样的一个群体称为种群。 个体:组成种群的单个生物。 基因 ( Gene ) :一个遗传因子。 染色体 ( ...
排序数组:$arr(1,43,54,62,21,66,32,78,36,76,39); 用四种排序算法进行排序冒泡排序:(思路:对未排好序的数,从前往后两个数一次进行比较和调整,大的下沉,小的上升) $arr=array(1,43,54,62,21,66,32,78,36,76,39); function bubbleSort($arr) { $len=count($arr); //该层循环控制 需要冒泡的轮数 for($i=1;$i<$len;$i++) { //该层循环用来控制每轮 冒出一个数 需要比较的次数 for($k=0;$k<$len-$i;$k++) { if(...
MDK开发环境从V4升级到V5后,支持包不再是集成到开发环境当中,而是封装在PACK中,需要自行安装,比较麻烦。搭建MDK开发环境以及破解的方法,在前面的文章中有详细说明,这里不再赘述,有兴趣的可以参考:http://www.cnblogs.com/huanzxj/p/6200928.html搭建好开发环境,在编译完代码需要下载的时候,需要选择下载算法:add flash programming algorithm,这时候可能会遇到本文锁讲述的问题,找不到与你使用的MCU 对应资源的软件算...
1,SVM算法的思考出发点SVM算法是一种经典的分类方法。对于线性可分问题,找到那个分界面就万事大吉了。这个分界面可以有很多,怎么找呢?SVM是要找到最近点距离最远的那个分界面。有点绕,看下面的图就明白了为了推导简单,我们先假设样本集是完全线性可分的,也就一个分界面能达到100%的正确率。2,线性可分的情况(1)优化目标的建立最近点距离最远的分界面,这句话得用数学式子表示出来,这样才能用数学工具进行求解。首先,假...
插入排序类似于扑克牌摸牌的过程(我的习惯),小的放在前面,如果抓到更小的就再往前面放但是第一张是不用排的。。。。数组: 3, 6, 2, 1, 9->2,3,6,1,9->1,2,3,6,9#include <iostream>using namespace std;int main() {int a[] = { 3, 6, 2, 1, 9 };int key, j;for (int i = 1; i < sizeof(a) / 4; i++){key = a[i];j = i - 1;while (j >= 0 && a[j] > key){a[j + 1] = a[j];j--;}a[j + 1] = key;}for (int i = 0; i < sizeof(a)...
1.概述基数排序(Radix sort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序的发明可以追溯到1887年赫尔曼·何乐礼在打孔卡片制表机(Tabulation Machine)上的贡献。原理:将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次...