FangHeart's blog

爱生活,爱编码。


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

  • 搜索

8皇后

发表于 2017-03-14 | 分类于 算法 | 阅读次数
8皇后之间需满足: 1.不在同一行上 2.不在同一列上 3.不在同一斜线上 4.不在同一反斜线上 ​ 这为我们提供一种遍历的思路,我们可以逐行或者逐列来进行可行摆放方案的遍历,每一行(或列)遍历出一个符合条件的位置,接着就到下一行或列遍历下一个棋子的合适位置,这种遍历思路可以保证我们遍历过程中有一个条件是绝对符合的——就是下一个棋子的摆放位置与前面的棋子不在同一行(或列)。接下来,我们只要判断当前位置是否还符合其他条件,如果符合,就遍历下一行(或列)所有位置,看看是否继续有符合条件的位置,以此类推,如果某一个行(或列)的所有位置都不合适,就返回上一行(或列)继续该行(或列)的其他位 ...
阅读全文 »

图的深度优先搜索和广度优先搜索

发表于 2017-03-14 | 分类于 算法 | 阅读次数
遍历图的遍历,所谓遍历,即是对结点的访问。一个图有那么多个结点,如何遍历这些结点,需要特定策略,一般有两种访问策略: 深度优先遍历 广度优先遍历 深度优先深度优先遍历,从初始访问结点出发,我们知道初始访问结点可能有多个邻接结点,深度优先遍历的策略就是首先访问第一个邻接结点,然后再以这个被访问的邻接结点作为初始结点,访问它的第一个邻接结点。总结起来可以这样说:每次都在访问完当前结点后首先访问当前结点的第一个邻接结点。 我们从这里可以看到,这样的访问策略是优先往纵向挖掘深入,而不是对一个结点的所有邻接结点进行横向访问。 具体算法表述如下: 访问初始结点v,并标记结点v为已访问。 查找结点v的 ...
阅读全文 »

数组相关算法

发表于 2017-03-07 | 分类于 算法 | 阅读次数
寻找数组中最小值与最大值。方法一:维持2个变量min与max,每次取一个元素分别与两个变量比较,最后通过一次数组遍历找到最大值与最小值,虽然时间复杂度是O(n)但是比较次数是2.方法二:维持2个变量min和max,每次取相邻的两个数,较大者和max比,较小者和min比,以这样的方式找到最大值与最小值,时间复杂度为O(n/2)=O(n),但是比较次数为1.5N方法三:分治法。方法二代码如下:12345678910111213141516171819202122232425262728293031323334353637public class MaxAndMin { static ...
阅读全文 »

树相关算法

发表于 2017-03-06 | 分类于 算法 | 阅读次数
二叉树的常见概念 结点的度:节点所拥有的子树个数称为该节点的度。 叶节点:度为0的节点称为叶子节点,或者终端节点(即是树的最下层) 分枝节点:度部位0的结点称为分枝结点。一棵树的结点除叶结点以外,其余的都是分枝结点。 左孩子、右孩子、双亲:树中一个结点的子树的根节点称为这个结点的孩子,这个结点称为孩子结点的双亲,具有同一个双亲的孩子结点互称为兄弟。 祖先、子孙:在树种如果一条路径是从结点M到结点N,那么M就称为N的祖先。而N是M的子孙。 结点的层数:规定树的根节点层数为1,其余结点的层数等于他的双亲结点的层数+1。 树的深度:树中所有结点的最大层数称为树的深度。 树的度。树中所有 ...
阅读全文 »

字符串相关算法

发表于 2017-03-01 | 分类于 算法 | 阅读次数
1.字符串翻转//实现字符串的反转 ,例如how are you 变 you are how// 以及单词的反转,单词的反转即是先全部反转,然后在把每个单词反转123456789101112131415161718192021222324252627282930313233343536public class StringReverse { public static void main(String[] args){ String str = "how are you";// StringBuffer sb =new StringBuf ...
阅读全文 »

设计模式

发表于 2017-02-20 | 分类于 设计模式 | 阅读次数
设计模式原则1. 封装变化 2.多用组合少用继承(01)【使用组合建立系统具有很大的弹性,不禁可以讲算法族封装成类,更可以“在运行时动态的改变行为”,只要组合的行为对象符合正确的接口标准即可】 3.针对接口编程,不针对实现编程(01)【一种理解即使真实的针对interface的编程,也可理解成利用多态针对超类进行编程,根据具体的情况执行真正的行为,不会绑死在超类上,针对超类进行编程可以更明确的说成变量的声明类型应该是超类型,通常是一个抽象类或者是一个接口,如此只要是具体实现此超类型的类所产生的对象度可以指定给这个变量,也意味着,声明类时不用理会以后执行时的真正对象类型。】 4.为了交互对 ...
阅读全文 »

正则表达式pattern、match、math、random、System、Date、Calendar等

发表于 2017-01-14 | 分类于 java基础 | 阅读次数
01_常见对象(正则表达式的概述和简单使用) A:正则表达式 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。 作用:比如注册邮箱,邮箱有用户名和密码,一般会对其限制长度,这个限制长度的事情就是正则表达式做的 B:案例演示 需求:校验qq号码. 1:要求必须是5-15位数字 2:0不能开头 3:必须都是数字 a:非正则表达式实现 b:正则表达式实现 02_常见对象(字符类演示) A:字符类 [abc] a、b 或 c(简单类) [^abc] 任何字符,除了 a、b 或 c(否定) [a-zA-Z] a到 z 或 A ...
阅读全文 »

YARN之MRAppMaster深入剖析—ContainerAllocator分析

发表于 2017-01-10 | 分类于 hadoop-yarn | 阅读次数
1. ContainerAllocator概述ContainerAllocator负责与ResourceManager通信,为作业申请资源。作业的每个任务资源需求可描述为四元组,分别表示作业优先级、期望资源所在的host,资源量(当前仅支持内存),container数目,比如: <10, “node1”, “memory:1G”, 3>//优先级是一个正整数,优先级值越小,优先级越高 <10, “node2”, “memory:2G”, 10> <2, “*”, “memory:1G”, 20> //*表示这样的资源可来自任意一个节点,即不考虑数据本地性 C ...
阅读全文 »

YARN之MRAppMaster整体架构

发表于 2017-01-10 | 分类于 hadoop-yarn | 阅读次数
MRAppMaster介绍MRAppMaster是MapReduce的ApplicationMaster实现,它使得MapReduce计算框架可以运行于YARN之上。在YARN中,MRAppMaster负责管理MapReduce作业的生命周期,包括创建MapReduce作业,向ResourceManager申请资源,与NodeManage通信要求其启动Container,监控作业的运行状态,当任务失败时重新启动任务等。 YARN中事件驱动的方式YARN使用了基于事件驱动的异步编程模型,它通过事件将各个组件联系起来,并由一个中央事件调度器统一将各种事件分配给对应的事件处理器。在YARN中,每种组 ...
阅读全文 »

YARN之Node Manager整体框架

发表于 2017-01-10 | 分类于 hadoop-yarn | 阅读次数
NodeManager(NM)是YARN中每个节点上的代理,它管理Hadoop集群中单个计算节点,包括与ResourceManger保持通信,监督Container的生命周期管理,监控每个Container的资源使用(内存、CPU等)情况,追踪节点健康状况,管理日志和不同应用程序用到的附属服务(auxiliary service)。 【NodeStatusUpdater】当NM启动时,该组件向RM注册,并发送节点上可用资源。接下来,NM与RM通信,汇报各个Container的状态更新,包括节点上正运行的Container、已完成的Contaner等。此外,RM可能向NodeStatusUpd ...
阅读全文 »
123…5
FangHeart

FangHeart

不忘初心,方得始终。

43 日志
12 分类
47 标签
GitHub 微博 知乎 邮箱
  • HaroldLiuChi
  • GaoGuangYu
  • WenJieWang
  • DuanXiong
  • DongXiCheng
© 2016 - 2020 FangHeart
由 Hexo 强力驱动
主题 - NexT.Pisces
本站访客数22人次 本站总访问量52次