自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (1)
  • 收藏
  • 关注

原创 Carthage的Cartfile和Cartfile.resolved文件

Cartfile文件存储的是当前你想要更新的代码地址,利用carthage.update更新的是这个文件内的代码地址。Cartfile.resolved内容是当你更新了carthage update之后,根据Cartfile的文件内容生成Cartfile.resolved的内容。执行carthage bootstrap更新当前Cartfile.resolved。Cartfile.resol

2017-12-20 11:53:24 3283

原创 LintCode 第100题 删除排序数组中的重复数字

题目描述:给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度。不要使用额外的数组空间,必须在原地没有额外空间的条件下完成。样例给出数组A =[1,1,2],你的函数应该返回长度2,此时A=[1,2]。思路:既然是已经排好序的,我们可以定义一个变量temp,初始值为0,然后遍历数组,将不相同的元素都从放到temp的位

2017-12-19 16:34:44 373

原创 LintCode 第172删除元素

题目描述:给定一个数组和一个值,在原地删除与值相同的数字,返回新数组的长度。元素的顺序可以改变,并且对新的数组不会有影响。样例给出一个数组 [0,4,4,0,0,2,4,4],和值 4返回 4 并且4个元素的新数组为[0,0,0,2]实现代码:int removeElement(int a[],int element){ int nu

2017-12-19 14:44:36 275

原创 搬好小板凳看SDWebImage源码解析(二)

4>SDWebImageDownloaderSDWebImageDownloader是以单例存在,对图片下载管理,进行一些全局的配置。如下: 1).设置最大并发数,下载时间默认15秒,是否压缩图片和下载顺序等。 2).设置operation的请求头信息,负责生成单个SDWebImageDownloaderOperation以及取消operation等。 3).设置下载的策略SDWebImage

2017-12-19 13:27:51 453

原创 搬好小板凳看SDWebImage源码解析(一)

看了下距离上次写简书博客的时间,已经过去了八个多月了,很惭愧。正好最近项目不忙,抽点时间研究下第三方库,朋友建议总结写成博客就这样开篇了。内容篇幅会比较长,所以希望各位看官搬好小板凳看SDWebImage源码解析,如果没有毅力真的是很难坚持下去。希望大家可以坚持跟着博主一块学完SDWebImage源码系列。 一.准备知识在正式学习源码前,先讲一些SDWebImage中用到的生僻知识点,有些用的很频

2017-12-17 23:57:18 545

原创 LintCode 第175题 反转二叉树

题目描述:翻转一棵二叉树。样例 1 1 / \ / \2 3 => 3 2 / \ 4 4思路:1.使用递归,左节点赋值给右节点,注意使用局部变量temp节点去交换存储。实现代码:#include using namespace std;typedef struct

2017-12-13 13:15:14 229

原创 LintCode 第420题 报数

题目描述:报数指的是,按照其中的整数的顺序进行报数,然后得到下一个数。如下所示:1, 11, 21, 1211, 111221, ...1 读作 "one 1" -> 11.11 读作 "two 1s" -> 21.21 读作 "one 2, then one 1" -> 1211.给定一个整数 n, 返回 第 n 个顺序。 

2017-12-13 11:20:35 306

原创 LintCode 第41题 最大子数组

题目描述:给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。 注意事项子数组最少包含一个数样例给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1],其最大和为6思路:刚开始我想错了,一直朝着怎么找最大值的子数组来做思考,其实是不对的,应该找最大和,数组的内容其实是无所谓的。因为转变思路后

2017-12-12 12:27:13 287

原创 LintCode 第491题 回文数

题目描述:判断一个正整数是不是回文数。回文数的定义是,将这个数反转之后,得到的数仍然是同一个数。 注意事项给的数一定保证是32位正整数,但是反转之后的数就未必了。样例11, 121, 1, 12321 这些是回文数。23, 32, 1232 这些不是回文数。思路:第一种:先把整数用temp临时变量存储,然后将temp整数反转,最终

2017-12-12 11:19:18 203

原创 LintCode 第165题 合并两个排序链表

将两个排序链表合并为一个新的排序链表,默认是两个已经排好序的链表。此题目也是剑指offer的的题目。样例给出 1->3->8->11->15->null,2->null, 返回 1->2->3->8->11->15->null。算法思路一:在链表A中分别取出每个结点,再分别与链表B中的结点进行比较,找到适当位置后插入。这种算法时间复杂度太高,假如链表A和;链表B的长度分别是

2017-12-11 12:11:24 248

原创 LintCode 第111题 爬楼梯 【动态规划算法】

假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?样例比如n=3,1+1+1=1+2=2+1=3,共有3种不同的方法返回 3思路:这道题其实就是兔子繁殖/斐波那契数列的问题,只不过单纯的使用递归会造成空间占用过多效率地下,下面我们使用数组保存之前的运算结果。代码时间:#include using nam

2017-12-11 11:38:50 1103

原创 LintCode 第407题 加一

题目描述:给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。该数字按照大小进行排列,最大的数在列表的最前面。样例给定 [1,2,3] 表示 123, 返回 [1,2,4].给定 [9,9,9] 表示 999, 返回 [1,0,0,0].解题思路:可能每个人都有自己的解法,仔细观察只需要去将最后一位+1,如果和>9则进位继续+

2017-12-09 22:10:25 213

原创 LintCode 第423题

题目描述:给定一个字符串所表示的括号序列,包含以下字符: '(', ')', '{', '}', '[' and ']', 判定是否是有效的括号序列。样例括号必须依照 "()" 顺序表示, "()[]{}" 是有效的括号,但 "([)]"则是无效的括号。解法思路:第一种 迭代代码量少,很清晰易懂。  char string[] = "()[

2017-12-08 14:47:19 220

原创 LintCode 第46题 主元素 【贪心算法】

题目描述:给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的二分之一。样例给出数组[1,1,1,1,2,2,2],返回 1解题思路:这道题属于贪心算法,解法有多种,关键是找到最优解。最容易让人想到的解法就是遍历然后统计元素的个数,然后得出来最大的就是要找的主元素。但是这个效率低,最优的解法是将数组的元素分为两类,一类是主元素,另一类是非

2017-12-07 14:37:51 348

原创 LintCode 第35题 翻转链表 【链表】

样例给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null解题思路:1.首先利用尾插法建立单链表。2.定义preNode节点和curNode节点,然后利用while循环,定义tempNode节点用于存储preNode节点的下一个节点。具体看代码更易于理解。还有另外一种思路就是在建立链表的时候建立成双链表,这样简单很多,但是只限于题目

2017-12-07 11:54:05 305

原创 LintCode 第97题 二叉树的最大深度 【分治算法】

题目描述:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的距离。样例给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5这个二叉树的最大深度为3.解题思路:使用递归的思想,递归函数返回当前节点左右子节点的深度大的那一个。实现代码:#include #include #include

2017-12-06 14:35:46 501

原创 LintCode 第82题 落单的数 【贪心算法】

题目描述:给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。样例给出 [1,2,2,1,3,4,3],返回 4解题思路:其实这道题,刚开始拿到你可能会觉得是在考查找算法。可能还会想到二分查找,但是这道题 不适用于二分查找,因为里面是有重复数字的,如果使用遍历,写上两个for循环再配合数组去记录已经出现的数字,这样来判断是否是单

2017-12-06 12:28:24 435

原创 LintCode 第53题 翻转字符串

题目描述:给定一个字符串,逐个翻转字符串中的每个单词。说明:单词的构成:无空格字母构成一个单词输入字符串是否包括前导或者尾随空格?可以包括,但是反转后的字符不能包括如何处理两个单词间的多个空格?在反转字符串中间空格减少到只含一个其实这道题的说明很笼统,我们就暂且按照大众网友的理解来做这道题。样例:给出s = “ the sky is blue

2017-12-05 18:24:47 1601

原创 LintCode 第167题目 链表求和

题目描述:你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。样例给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->8->null基本思路:1.首先creatLink函数创建两个单链表,每个节点的value装的

2017-12-04 15:01:27 317

原创 LintCode 第413题 反转整数 【整数】

题目描述:将一个整数中的数字进行颠倒,当颠倒后的整数溢出时,返回 0 (标记为 32 位整数)。样例给定 x = 123,返回 321代码实现:#include int reverseInteger(int n){ if (n == 0) { return 0; } int sum = 0; while (

2017-12-04 13:52:50 429

原创 LintCode 第56题 两数之和 【排序算法】

题干描述:给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 1 到 n,不是以 0 开头。样例给出 numbers = [2, 7, 11, 15], target = 9, 返回 [1, 2].代码实现:其实这里用的

2017-12-03 23:16:30 219

原创 LintCode 第366题 斐波纳契数列 【枚举法】

查找斐波纳契数列中第 N 个数。所谓的斐波纳契数列是指:前2个数是 0 和 1 。第 i 个数是第 i-1 个数和第i-2 个数的和。斐波纳契数列的前10个数字是:0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ...样例给定 1,返回 0给定 2,返回 1给定 10,返回 34代码实现:#includ

2017-12-02 16:07:17 368

原创 LintCode 第452题 删除链表中的元素

题目描述:删除链表中等于给定值val的所有节点。样例给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。代码实现:#include //链表结点结构struct Node { int value; struct Node * next;};//创建单链表str

2017-12-02 14:40:42 151

原创 LintCode 第463题 整数排序

题目描述:给一组整数,按照升序排序,使用选择排序,冒泡排序,插入排序或者任何 O(n2) 的排序算法。样例给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。实现代码->用冒泡排序实现: int a[] = {5,1,3,2,4}; for (int i = 0; i<

2017-12-02 14:32:41 411

原创 LintCode 第466题 链表节点计数

基本思路:1.创建带头结点的单链表,头结点的数据域value为02.遍历链表,过滤掉头结点,不做计数实现代码:#include #include #include using namespace std;typedef struct LinkListNode { int value; LinkListNode * nextNode;}LinkList

2017-12-01 13:47:22 315

CoreData简单工具类

针对CoreData的一个简单封装,可实现基本的插入,删除,查询,更新的功能。

2016-01-20

空空如也

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

TA关注的人

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