Tango Blog

Happy Hacking

hihocoder#1105 堆

算法原题来自:hihocoder 你可以在我的github获取源码:https://github.com/Wtango/hihocoder 大根堆属于完全二叉树,并且根所有节点的权重都比这个节点的左右孩子的权重大。 题目中堆的建立如维护主要有两个操作:1.添加节点  2.删除根 添加节点即建堆的过程,建堆的时间复杂度O(N) ,删除根节点的时间复杂度为O(log N),使用数组表...

设计模式(3)–策略模式

1.模式适用性 2.模式结构 3.实现 4.与简单工厂模式的区别 策略模式在《设计模式》一书中定义为行为模式,在实现一个功能中有多种算法和策略可供选择,客户端根据具体生产环境可以选择不同的方法以达到同样的效果。最快能想到的方法便是将所有能想到算法都硬编码进客户端,根据条件选择具体算法。但这是非常糟糕的方案,大量的算法代码堆积在客户端,导致客户端代码难以维护,所以这时候策...

百度WordPress结构化数据插件checkurl请求失败解决办法

在安装百度Wordpress结构化数据插件后,需要进行站点校验。在校验的时候会出现“checkurl请求失败”错误,在百度搜索了一番没有找到答案,大多数都不是问题的关键。 查看了校验部分的代码之后,发现了有两个地方有比较大的嫌疑:  在插件目录下的checksign.php文件中: if (!function_exists('add_action')) { require_o...

设计模式(2)–简单工厂模式

模式适用性 模式结构 实现 工厂模式与单例模式一样都是属于创建型模式,替代new关键字用于创建对象。客户端只需要告知工厂需要生产的产品类型,工厂就会返回相应的生产工具,并且客户端使用工具的方法是一致的(一致的接口),可以不用管具体的实现手段。 模式适用性 当一个类不知道它所必须创建的对象的类的时候。 当一个类希望通过统一接口操作的时候。 模式结构 ...

hihocoder#1014 Trie树提速字典查找

算法原题来自:hihocoder 你可以在我的github获取源码:https://github.com/Wtango/hihocoder Trie树,Trie树的名字有很多,比如字典树,前缀树等等。Trie树可以应用与辞频统计、前缀统计等,其原理是利用公共前缀来减少查询的时间,减少无谓的查询以提高查询时间。 我们看一个Trie树例子:字典有app、apple、add三个单词 ...

设计模式(1)–单例模式

模式适用性 模式结构 实现 单例模式(Singleton)是软件开发中最常用的设计模式,也是比较简单的设计模式。 对于一些类来说,我们只需要一个实例,有时候这样的特性很有作用。比如一个王国,只有一个国王,那么国王就可以看作为单例模式,任何时候全国臣民都只听这个国王发布号令,不能有两个国王发布号令。 简单说来,单例模式(也叫单件模式)的作用就是保证在整个应用程序的生命周期...

段错误(Segmentation fault)产生的原因以及调试方法

什么是段错误 导致段错误的直接原因 段错误调试方法 dmesg + nm 使用fprintf gdb signal(SIGSEGV,handler) 什么是段错误 可能每个程序员在Linux环境下使用C/C++编程时都曾遇到过“段错误”(Segmentation fault),段错误是由于内存管理单...

Linux的内存管理

预热 Linux进程虚拟内存结构 地址相关概念 4.逻辑地址线性地址转换 CPU分页式内存管理 Linux的内存管理 预热 本文以X86架构32位系统为对象讲述Linux的内存管理方式。 Linux 的虚拟内存管理有几个关键概念: 每个进程都有独立的虚拟地址空间,进程访问的虚拟地址并不是真正的物理地址; 虚拟地址可通过每个进程上的页表(在每个进程的...

WordPress加载慢(2)–头像服务器

调用ssl 头像链接 本地缓存 多说缓存 Gravatar 应该是彻底被墙了,所以在WordPress在加载的时候非常慢,导致一些插件在加载完之前无法正常工作。 调用ssl 头像链接 https还是没被墙的,而且速度还不错,直接调用这个最简单了。 如果你的网站启用了ssl则不需要了,否则theme的functions.php 加入如下代码 function ge...

WordPress加载慢(1)–Google Web字体

在新版的 WordPress 中,为了后台的美观度,开发者在页面上加入了 Google Web 字体,这本来会让英文显示更加精美。但在国内,由于 googleapis.com 等域名常年抽风(你懂的),直接导致的结果就是后台经常打开一点就卡住打不开了,加载极为缓慢,其实我们只要移除 Google 在线字体即可恢复原来的速度。 在你的主题的 function.php 顶部加入以下代码即可...