自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 问答 (1)
  • 收藏
  • 关注

原创 SDWebImage学习记录

最近学习了 SDWebImage 源码,记录一些关键的要点防止自己忘记。SDWebImage的架构图最核心的部分 SDWebImageManager控制缓存图片数据,发起网络请求的部分。SDWebImageManager会用一个字典对每次的请求都做记录,如果有两次相同的请求,前一次的将会被取消。 其包括两个最重要的对象SDImageCache和SDWebImageDown...

2018-03-26 15:13:17 291

原创 Mach-O文件格式

一个简单的程序#include int main(int argc, const char * argv[]) { // insert code here... printf("Hello, World!\n"); return 0;}对 mach-o 的分析从这个简单的 小程序开始可执行文件的结构我们用 MachOView 打开我们刚刚写了

2018-01-27 21:10:29 2121

原创 Swift学习笔记---Error Handling

表现和抛出错误在 Swift 中,errors 通过一些遵守 Error 协议的值表示。空的协议代表一个类型可以用作错误处理。Swift中的枚举类型非常适合建立相关错误的模型,枚举容许存放一些关于错误的信息。下面的例子是我们使用自动售货机时的错误模型 enum VendingMachineError: Error { case invalidSelection ca

2017-02-27 17:28:10 910

原创 丑数

题目描述 把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。class Solution {public: int GetUglyNumber_Solution(int n) { if (n <= 0)return 0; vector

2016-12-11 18:04:55 334

原创 把数组排成最小的数

题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。class Solution {public: static bool cmp(int a,int b) { char buf[20]; string stra

2016-12-11 11:18:12 272

原创 Floyd算法

动态规划: dist[i][j] = min(dist[i][j],dist[i][k]+dist[k][j])typedef enum{DG,DN,UDG,UDN}GraphKind;typedef int AdjType;typedef char VertexData;typedef struct ArcNode{ AdjType adj;}ArcNo

2016-12-05 15:22:46 317

原创 整数中1出现的次数

题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。class Solution {public: int NumberOf1Between1AndN

2016-12-04 11:38:27 263

原创 Dijkstra 算法

#define MAX_VERTEX_NUM 20#define INFINITY 0x7FFFFFFFtypedef enum{DG,DN,UDG,UDN}GraphKind;typedef int AdjType;typedef char VertexData;typedef struct ArcNode{AdjType adj;}ArcNode;typedef stru

2016-11-29 15:33:39 271

原创 字符串排序

题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 输入描述: 输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。class Solution { private: bool visit[20]; void sortSt

2016-11-27 10:48:49 275

原创 Swift 学习笔记---Optional Chaning

Optional Chaining可选链是一个可选变量上调用方法,属性和下标的请求过程的过程。这个可选变量可能是 nil。如果可选变量包含一个值,那么调用就是成功的。如果可选变量是 nil,调用将放回 nil。多重查询能够被链接在一起,如果任何链接在链上是 nil,那么全部都是 nil。Optional Chaining as an Alternative to Forced Unwrapp

2016-11-26 11:50:05 576

原创 自动引用计数

ARC 如何工作 每当你产生一个对象,ARC分配一大块控件去存储这个对象。 除此之外,当一个对象是不在需要,ARC 将会收回这个实例对象所占的空间,如果一个对象的空间被释放掉,但是你任然通过对象的引用调用方法或者属性,你的程序将要崩溃。为了不让对象被释放掉 ARC将会追踪有多少属性、常量、变量正在引用这个对象。只要有一个在引用他 ARC 将不会释放这个对象。因此当年给属性、常量

2016-11-25 17:09:22 290

原创 Mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)解决方案

1.sudo /usr/local/mysql/support-files/mysql.server stop 2.cd /usr/local/mysql/bin 3.sudo /usr/local/mysql-5.7.16-osx10.11-x86_64/bin/mysqld_safe –skip-grant-tables 注意 mysqld_safe的路径可能不同 4. $ my

2016-11-21 21:39:50 284

原创 用C 语言实现 Ping

一.套接字 int socket(int domain,int type,int protocol); 参数domain确定通信特性,它有4个域分别为 AF_INET IPV4英特网域 AF_INET6 IPV6因特网域 AF_UNIX UNIX 域 AF_UPSPEC 未指定 参数 type 确定套接字类型,进一步确定通信特性 SOCK_DGRAW

2016-11-15 15:18:50 498

原创 Swift学习笔记---Deinitialization

一个类的实例对象所占资源被收回时,析构器将会被调用。只有类才有析构器。析构器如何工作 Swift 能够更加对象的引用计数,来自动释放一个对象。当我们现在一个对象被释放前做一些处理工作,那么我们就要有自己的析构器。每个类最多只有一个析构器,想下面这样:deinit { // perform the deinitialization} 析构器在实例对象被释放前调用,不能人为的去

2016-11-07 14:24:11 535

原创 DHT爬虫 原理分析

一.BiTtorrent的DHT实现 — Kademlia 协议在kad网络中的,每个节点都有自己的 id 值(从160bit空间中随机选取)。并规定节点间的距离是节点id值的异货值。每个节点都有一个路由表。这个路由变实际上是个二叉树,二叉树中的叶子节点存放的是具有相同最大前缀的节点 id。每个叶子节点我们叫做 k桶,这个 k桶里有 k个其他节点的信息(IP address,UDP port,Nod

2016-11-03 23:22:37 3002

原创 百度网盘爬虫

实现这个只需三个步骤1.我们需要知道网络上具有共享资源的百度网盘的 uk并把他们放入数据库中。我们可以从下面的地址中快速的获得 ukhttp://yun.baidu.com/pcloud/friend/getfanslist?query_uk=1327787586&limit=25&start=0http://yun.baidu.com/pcloud/friend/gethotuserlist?ty

2016-11-02 23:11:50 6673 1

原创 Swift 学习笔记---Initialization

一.建立存储属性的初始化值 当获得结构体和类的实例必须给他们的存储属性设置初始化值。你有两种方法来初始化。一种方法设置初始化器, 另一种方法是设置默认值。当给一个存储属性初始化的时候,不会调用观察者方法。Initializers 当获得一个类型的实例时,初始化器被自动调用。一个初始化器像一个实例方法。我们用 init 关键字来表示初始化方法。 init() {// pe...

2016-10-26 09:28:15 337

原创 树的子结构

题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) #include <iostream>using namespace::std; struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x) : val(x), left(nu

2016-10-23 14:21:31 211

原创 简单日历

实现的简单日历,github地址为https://github.com/mrHuangWenHai/Mr–

2016-10-18 18:46:38 245

原创 Swift 学习笔记---Inheritance

一.定义基类 如果一个类没有继承于其它类,那么它被称谓基类。注意Swift 中的类没有通用的基类。 class Vehicle {var currentSpeed = 0.0var description: String { return "traveling at \(currentSpeed) miles per hour"}func makeNoise() { ...

2016-10-10 14:28:21 358

原创 Swift 学校笔记---Subscripts

Subscripts类、结构体、枚举能够通过下标来获取其中的值。一下标语法 通过在一个方括号里写一个或者更多个值,下标可以查询实例对象。通过写 subscript 来定义一个下标,并且我们可以指定一个或者多个输入值和一个返回值。下标可以是 read-write 或者 read-only。 subscript(index: Int) -> Int {get { // return an

2016-10-07 14:38:09 341

原创 二进制中1的个数

题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 int NumberOf1(int n) { int count = 0; if(n == 0) return 0; if(n == 0x80000000) return 1; if(n < 0){ n = n&0x7FFFF

2016-10-07 11:46:44 182

原创 矩形覆盖

我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? class Solution { public: int rectCover(int number) { if(number <= 0) return 0; if( number== 1) return 1;

2016-10-07 11:05:23 175

原创 Swift 学习笔记---Methods

方法是与特定类型联系的方法。Classes、structures和enumerations能够定义实例方法也能够定义类方法。一实例方法实例方法是属于Classes、structures和enumerations实例的方法,它的定义和函数一样。class Counter {var count = 0func increment() { count += 1}func incremen

2016-10-06 15:17:21 301

原创 斐波那契数列

题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。int Fibonacci(int n) { if(n <= 0) return 0;//这里要注意判断小于0的情况 if(n == 1 || n == 2) return 1; int b = n-2; int d[2][2]; d[0][0] = 1; d[0][

2016-10-06 11:57:20 263

原创 Swift学习笔记 ---Properties

一.存储属性 存储属性是一个变量或者是一个常量,其被放置在类或者结构体的定义中。我们可以给存储属性设置一个默认值。在初始化期间我们可以改变存储属性的值,即使存储属性是 let。常量结构体的存储属性 如果你生成一个结构体的实例对象并把这个对象复制给一个常量,那么结构体中的所有存储属性都不能改变,包括 var懒惰的存储属性 懒惰的存储属性只有在它第一次被用的时候才会被

2016-09-29 19:33:12 310

原创 Classes and Structures

一.定义语法       class SomeClass {       // class definition goes here   }   struct SomeStructure {     // structure definition goes here  }  注意:一般类名和结构名首字母都大学,方法和属性都小写。    struct Reso

2016-09-25 16:34:03 195

原创 用两个栈实现队列

题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型class Solution{public:    void push(int node) {        stack1.push(node);    }        int pop() {        if(stack1.empty()) return

2016-09-25 00:32:24 215

原创 重建二叉树

题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。#include #include using namespace::std;struct TreeNode

2016-09-24 23:04:19 169

原创 swift学习笔记 -- Enumerations

一.枚举语法    enum 枚举名{      case:枚举名      case:枚举名      case:枚举名      .......   }  enum CompassPoint {    case north    case south    case east    case west  }

2016-09-21 08:49:43 357

原创 swift学习笔记 --- Closures

一.闭包创建语法       {(parameters) -> return type in         statements}

2016-09-12 17:33:57 385

原创 swift学习笔记 -- Functions

一 定义和调用函数    func 函数名(参数名:参数类型) -> 返回值类型{                   }     如:        func greet(person: String) -> String {        let greeting = "Hello, " + person + "!"        return greeting

2016-09-06 21:13:15 266

原创 swift学习笔记 --- Control Flow

这篇文章主要讲 swift 和 C 语言不同的地方 For-In Loops    用这个便于遍历数组,字典等  Repeat-While   相当于 C 里的 do-While

2016-09-01 17:58:42 279

原创 swift学习笔记 --- Collection Types

Mutability of Collections  这取决于是var还是let,var可变,乐天不可变Array  数组里存放相同类型的对象,swift的Array 桥接于 OC里的NSArray如何规定数组类型   有两种方式来确定规定数组里所放数据的类型。第一是 Array,第二是[Element].创造一个空的数组   varsomeInts = [In

2016-08-30 17:21:53 351

原创 swift学习笔记----Strings and Characters

初始化一个空的String  初始化一个空的字符串有两种方式:    1.var emptyString = ""     2.var anotherEmptyString = String()   上面这两种方式完全相同,我们可以通过字符串的isEmpty属性来判断是否为空String的可变性  这完全取决于变量是let还是var字符串是值类型

2016-08-29 21:55:34 565

转载 如何写好一个UITableView(完整版)

demo如果你觉得UITableViewDelegate和UITableViewDataSource这两个协议中有大量方法每次都是复制粘贴,实现起来大同小异;如果你觉得发起网络请求并解析数据需要一大段代码,加上刷新和加载后简直复杂度爆表,如果你想知道为什么下面的代码可以满足上述所有要求:MVC系好安全带,上车!在讨论解耦之前,我们要弄明白 MVC 的

2016-05-30 16:06:55 385

原创 table消除 td 之间的间距

有两种方式可以实现1.2.css 的border-collapse:collapse样式通过上面的方法可以实现这样的效果具体的 css 代码.dir{ width: 400px; height: 150px; text-align: center; margin-top: 20px; margin-left: 20px;

2016-05-30 13:49:36 38696

原创 serservlet 一生

一 寻找类.     容器找到 servlet 文件,servlet 的生命开始。这基本都是在容器启动时发生的。容器启动时,它会寻找已经部署web 应用,然后开始搜索 servlet 类文件。二 加载类    这可能是在容器启动时发生,也可能是在第一个客户使用时进行,在 servlet 没有完全初始化之前不能运行 servlet 的 service() 方法 三 初始化 s

2016-05-29 20:38:34 263

原创 UICollectionView自定义布局

这个和 UItableView 在用法上大体上差不多这里只说明一下 UICollectionView 的布局。demo一. UICollectionViewFlowLayout布局方式:   这种布局方式是一种线性布局,他会先按照你设置的要求铺慢一行,当不满足指定条件的时候,会换行。  我们可以通过 UICollectionViewDelegateFlowLayout 代理

2016-05-26 19:59:16 1178

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除