- 博客(218)
- 资源 (3)
- 收藏
- 关注
转载 JTNavigationController
https://kanam.me/2016/01/07/%E7%94%A8Reveal%E5%88%86%E6%9E%90%E7%BD%91%E6%98%93%E4%BA%91%E9%9F%B3%E4%B9%90%E7%9A%84%E5%AF%BC%E8%88%AA%E6%8E%A7%E5%88%B6%E5%99%A8%E5%88%87%E6%8D%A2%E6%95%88%E6%9E%9C/
2020-06-08 14:22:14
301
原创 oc 记录method_exchangeImplementations导致的一种崩溃
事件背景:打算在UIButton的扩展类里面 hookintrinsicContentSize 方法,然后直接在+load的时候调用method_exchangeImplementations把自己的自定义xx_intrinsicContentSize方法跟现有的方法列表里面的交换,然后发生崩溃,但是UILabel就不会。事件的原因:UIButton并没有重写基类UIView的intrinsicContentSize方法,所以直接把基类UIView的方法和UIButton扩展的方法交换了,当其他UIV.
2020-05-31 11:01:36
694
原创 【剑指Offer学习】【面试题66:矩阵中的路径】
题目:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中任意一格开始,每一步可以在矩阵中间向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。https://cuijiahua.com/blog/2018/02/basis_65.htmlbool hasPathCore(char *str, int...
2020-02-27 16:47:13
122
转载 【剑指Offer学习】【面试题60:把二叉树打印出多行
题目:从上到下按层打印二叉树,同一层的结点按从左到右的顺序打印,每一层打印一行。解题思路 用一个队列来保存将要打印的结点。为了把二叉树的每一行单独打印到一行里,我们需要两个变量:一个变量表示在当前的层中还没有打印的结点数,另一个变量表示下一次结点的数目。...
2020-02-27 09:24:34
162
转载 【剑指Offer学习】【面试题59:对称的二叉树】
题目:请实现一个函数来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。解题思路 通常我们有三种不同的二叉树遍历算法,即前序遍历、中序遍历和后序遍历。在这三种遍历算法中,都是先遍历左子结点再遍历右子结点。我们是否可以定义一种遍历算法,先遍历右子结点再遍历左子结点?比如我们针对前序遍历定义一种对称的遍历算法,即先遍历父节点,再遍历它的右子结点,最后遍历它的左子结点。...
2020-02-27 09:22:27
135
转载 【剑指Offer学习】【面试题58:二叉树的下一个结点】
题目:给定一棵二叉树和其中的一个结点,如何找出中序遍历顺序的下一个结点?树中的结点除了有两个分别指向左右子结点的指针以外,还有一个指向父节点的指针。解题思路 如果一个结点有右子树,那么它的下一个结点就是它的右子树中的左子结点。也就是说右子结点出发一直沿着指向左子结点的指针,我们就能找到它的下一个结点。 接着我们分析一个结点没有右子树的情形。如果结点是它父节点的左子结点,那么它的下...
2020-02-26 23:52:35
127
转载 【剑指Offer学习】【面试题57:删除链表中重复的结点】
#题目删除链表中重复的节点在一个排序,如何删除重复的节点?例如:1 -> 2 -> 3 -> 3 -> 4删除后是 1 -> 2 -> 4##分析###方法2(三指针法)采用三个指针来进行遍历,同时删除重复的节点,因为是有序的链表,我们就可以确定,重复的元素肯定是在一块链接,所以我们就可以,用三指针,我们这里就叫pre、cur、nex ...
2020-02-26 23:32:29
128
转载 【剑指Offer学习】【面试题56:链表中环的入口结点】
题目:一个链表中包含环,如何找出环的入口结点?https://blog.csdn.net/liushall/article/details/80444753
2020-02-26 23:08:25
113
原创 【剑指Offer学习】【面试题55:字符流中第一个不重复的字符】
题目:请实现一个函数用来找出字符流中第一个只出现一次的字符。举例说明 例如,当从字符流中只读出前两个字符“go”时,第一个只出现一次的字符是‘g’。当从该字符流中读出前六个字符“google”时,第一个只出现1次的字符是”l”。这个问题和之前的问题似乎是一个问题;https://blog.csdn.net/li198847/article/details/104467812...
2020-02-25 23:35:29
135
转载 【剑指Offer学习】【面试题54:表示数值的字符串】
数)。例子说明 例如,字符串“+100”,“5e2”,“-123”,“3.1416”及”-1E-16”都表示数值,但“12e”,”1a3.14”,”1.2.3”,”+-5”及“12e+5.4”都不是。 解题思路 在数值之前可能有一个表示正负的’-‘或者’+’。接下来是若干个0到9的数位表示数值的整数部分(在某些小数里可能没有数值的整数部分)。如果数值是一个小数,那么在小数点后面可...
2020-02-25 23:25:33
113
转载 【剑指Offer学习】【面试题53:正则表达式匹配】
https://blog.csdn.net/derrantcm/article/details/46825653
2020-02-25 23:08:35
96
原创 【剑指Offer学习】【面试题52:构建乘积数组】
题目:给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1],不能使用除法。https://blog.csdn.net/Allenlzcoder/article/details/79706454...
2020-02-25 23:03:21
89
原创 【剑指Offer学习】【面试题51:数组中重复的数字】
题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 以数组{2,3,1,0,2,5,3}为例来分析找到重复数字的步骤。数组的第0个数字(从0开始计数,和数组的下标保持一致)是2,与它的下标不相等,于是把它和下标为2的数字1交换。交换之后的数组是{1.3.2.0...
2020-02-25 22:07:52
172
原创 【剑指Offer学习】【面试题50:树中两个结点的最低公共祖先】
题目:求树中两个结点的最低公共祖先,此树不是二叉树,并且没有指向父节点的指针。https://blog.csdn.net/I_just_smile/article/details/100167875
2020-02-25 21:23:22
109
原创 【剑指Offer学习】【面试题49:把字符串转换成整数】
题目:实现一个函数stringToInt,实现把字符串转换成整数这个功能,不能使用atoi或者其他类似的库函数。https://blog.csdn.net/yishizuofei/article/details/81610802bool stringToInt(char *str,int *ret) { if ( NULL== str || ret == NULL |...
2020-02-25 14:08:40
176
原创 【剑指Offer学习】【面试题47:不用加减乘除做加法】
题目:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、×、÷四则运算符号。https://www.jianshu.com/p/eeec640ccccbint bitSumTwo(int m, int n) { int noUp = 0; // 无进位的和 int withUp = 0; // 有进位的和 while (n != 0) { ...
2020-02-24 23:18:28
99
原创 【剑指Offer学习】【面试题45:圆圈中最后剩下的数字(约瑟夫环问题)】
题目:0, 1, … , n-1 这n个数字排成一个圈圈,从数字0开始每次从圆圏里删除第m个数字。求出这个圈圈里剩下的最后一个数字。解题思路第一种:经典的解法, 用环形链表模拟圆圈。 创建一个总共有n 个结点的环形链表,然后每次在这个链表中删除第m 个结点。https://blog.csdn.net/zuochao_2013/article/details/53760210...
2020-02-24 22:06:15
110
原创 【剑指Offer学习】【面试题44:扑克牌的顺子】
题目:从扑克牌中随机抽5张牌,判断是不是一个顺子, 即这5张牌是不是连续的。2~10为数字本身, A为1。 J为11、Q为12、 为13。小王可以看成任意数字。总体思路;快拍-》判断0的个数;从第一个非0位置。两个差1index快慢指针,统计快慢指针位置是否是同样元素,如果是那么不是顺子,如果不是那么统计快指针和慢指针断层的和【也就是相差大于1】,最后对比0的个数是否大于等于断...
2020-02-24 21:28:20
197
原创 【剑指Offer学习】【面试题43 : n 个锻子的点数】
https://blog.csdn.net/derrantcm/article/details/46784575题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s 的所有可能的值出现的概率。...
2020-02-24 21:05:29
92
原创 【剑指Offer学习】【面试题42:翻转单词顺序vs左旋转字符串】
https://blog.csdn.net/derrantcm/article/details/46784471题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内字啊的顺序不变。为简单起见,标点符号和普通字母一样处理。举例说明例如输入字符串”I am a student. ”,则输出”student. a am I”。题目二:字符串的左旋转操作是把字符串前面...
2020-02-24 20:43:50
119
原创 剑指offer-题41:和为s的两个数字VS和为s的连续正数序列
题目描述题一:输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。例如输入数组{1 、2 、4、7 、11 、15 }和数字15. 由于4+ 11 = 15 ,因此输出4 和11 。题二:输入一个正数s,打印出所有和为s的连续正数序列(至少含有2个数),例如输入15,由于1+2+3+4+5=4+5+6=7+...
2020-02-24 19:44:39
77
原创 【剑指Offer学习】【面试题40:数组中只出现一次的数字】
题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次,请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。https://cuijiahua.com/blog/2018/01/basis_40.htmlbool isBitOne(int num,int index) { return (num>>index)%2 == 1;}...
2020-02-24 16:46:02
99
原创 剑指Offer学习】【面试题39:二叉树的深度】
题目一:输入一棵二叉树的根结点,求该树的深度。从根结点到叶子点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。int treeLenght(tree * root) { if (NULL == root) { return 0; } int leftLen = treeLenght(root->left); ...
2020-02-24 15:44:31
77
原创 【剑指Offer学习】【面试题38:数字在排序数组中出现的次数】
https://www.nowcoder.com/questionTerminal/70610bf967994b22bb1c26f9ae901fa2?orderByHotValue=1&page=8&onlyReference=false//因为数组中都是整数,所以可以稍微变一下,不是搜索k的两个位置,而是搜索k-0.5和k+0.5//这两个数应该插入的位置,然后相减...
2020-02-24 15:33:51
92
原创 【剑指Offer学习】【面试题37:两个链表的第一个公共结点】
第三种:先行法 在图5.3 的两个链表中,我们可以先遍历一次得到它们的长度分别为5 和4, 也就是较长的链表与较短的链表相比多一个结点。第二次先在长的链表上走1 步,到达结点2。接下来分别从结点2 和结点4 出发同时遍历两个结点, 直到找到它们第一个相同的结点6,这就是我们想要的结果。 第三种思路和第二种思路相比,时间复杂度都是O(m+n), 但我们不再需要辅助的拢,因此提高了空间效率。...
2020-02-24 09:29:36
78
原创 【剑指Offer学习】【面试题35:第一个只出现一次的字符】
Hash算法的思想:样例:输入“abaccdeff”, 输出b算法思路:字符(char)是一个长度为8的数据类型,因此总共有256种可能。每个字母根据ASCII码值作为数组的下标。数组中存储的是每个字符出现的次数。bool findOnceChar(char *str, int len ,char *ret) { if (NULL == str || 0 =...
2020-02-23 21:25:10
106
原创 【剑指Offer学习】【面试题34:丑数】
https://blog.csdn.net/derrantcm/article/details/46753255https://blog.csdn.net/hansionz/article/details/82722357bool uglyK(int k, int result[]) { if (0 >= k || NULL == result) { ...
2020-02-23 21:02:33
79
原创 【剑指Offer学习】【面试题33:把数组排成最小的数】
例子说明:例如输入数组{3, 32, 321},则扫描输出这3 个数字能排成的最小数字321323。这里面注意要是数组特别大,int肯定超过进度,所以要使用字符串,模拟。而要字符串模拟使得字符串的数值最小,那么在结果长度相等的情况下,那个开头字母比较小那么,哪个序列就比较小。在这里我们自己定义一个规则,对拼接后的字符串进行比较。排序规则如下:若ab > ba 则 a ...
2020-02-23 20:00:53
84
1
原创 【剑指Offer学习】【面试题32:求从1到n的整数中1出现的次数】
http://blog.sina.com.cn/s/blog_83f774820102wgh8.htmlint conutOne(int n) { if (n <= 0) { return 0; } if (n==1) { return 1; } int base = 1; int count = ...
2020-02-23 18:15:36
112
原创 【剑指Offer学习】【面试题31:连续子数组的最大和】
https://blog.csdn.net/wangaohan0728/article/details/88094581bool maxSub(int a[],int len,int*ret) { if (a == NULL || 0 == len) { return false; } int total=0; int curTot...
2020-02-23 14:05:11
94
原创 【剑指Offer学习】【面试题30:最小的k个数】
https://www.2cto.com/database/201807/761742.html解法一:类似快排序的变形,确保前k个都是比k小的:int partSort(int a[],int start,int end ) { int temp = a[start]; while (start < end) { while (start...
2020-02-23 13:04:42
79
原创 【剑指Offer学习】【面试题29 :数组中出现次数超过一半的数字】
https://blog.csdn.net/qq_43414142/article/details/98068177bool findMaxNum(int a[],int len, int* ret) { if (a == NULL || len == 0) { return false; } int count = 1; int re...
2020-02-23 10:58:21
62
原创 【剑指Offer学习】【面试题28 :字符串的排列】
https://blog.csdn.net/qq_25024883/article/details/79657992void doEnumList(char a[], int len, int start) { if (start == len-1) { NSString *string_content = [[NSString alloc] initWithC...
2020-02-23 10:24:45
98
原创 【剑指Offer学习】【面试题27:二叉搜索树与双向链表】
https://blog.csdn.net/mmwwxx123/article/details/81331893在搜索二叉树中,左子结点的值总是小于父结点的值,右子结点的值总大于父结点的值,因此我们在转换成排序双向链表时,原先指向左子结点的指针调整为链表中前一个结点的指针,原先指向右子结点的指针调整为链表中指向后一个结点指针。中序遍历二叉树有序,把中序遍历的结果链接成双向链表。...
2020-02-23 10:24:30
102
原创 【剑指Offer学习】【面试题26:复杂链表的复制】
https://blog.csdn.net/derrantcm/article/details/46721767主要分三步;第一步:仍然是根据原始链表的每个结点N 创建对应的N’。把N’链接在N的后面。图4.8 的链表经过这一步之后的结构,如图4.9 所示。第二步:设置复制出来的结点的sibling。假设原始链表上的N的sibling指向结点S,那么其对应复制出来的N’是N的...
2020-02-23 10:24:18
93
原创 【剑指Offer学习】【面试题25:二叉树中和为某一值的路径】
https://blog.csdn.net/feit2417/article/details/99544525typedef struct treeNode{ int m_nValue; struct treeNode* left; struct treeNode* right;} tree;bool doFindPath(tree* root, int...
2020-02-22 18:47:44
96
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人