- 博客(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
原创 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
空空如也
IP 数据报路由的疑惑?
2016-12-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人