![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础知识
文章平均质量分 57
dave-li
这个作者很懒,什么都没留下…
展开
-
oc 记录method_exchangeImplementations导致的一种崩溃
事件背景:打算在UIButton的扩展类里面 hookintrinsicContentSize 方法,然后直接在+load的时候调用method_exchangeImplementations把自己的自定义xx_intrinsicContentSize方法跟现有的方法列表里面的交换,然后发生崩溃,但是UILabel就不会。事件的原因:UIButton并没有重写基类UIView的intrinsicContentSize方法,所以直接把基类UIView的方法和UIButton扩展的方法交换了,当其他UIV.原创 2020-05-31 11:01:36 · 694 阅读 · 0 评论 -
sqlite数据类型
https://www.jianshu.com/p/72f19187fa55转载 2020-05-20 11:37:04 · 195 阅读 · 0 评论 -
【剑指Offer学习】【面试题66:矩阵中的路径】
题目:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中任意一格开始,每一步可以在矩阵中间向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。https://cuijiahua.com/blog/2018/02/basis_65.htmlbool hasPathCore(char *str, int...原创 2020-02-27 16:47:13 · 122 阅读 · 0 评论 -
【剑指Offer学习】【面试题60:把二叉树打印出多行
题目:从上到下按层打印二叉树,同一层的结点按从左到右的顺序打印,每一层打印一行。解题思路 用一个队列来保存将要打印的结点。为了把二叉树的每一行单独打印到一行里,我们需要两个变量:一个变量表示在当前的层中还没有打印的结点数,另一个变量表示下一次结点的数目。...转载 2020-02-27 09:24:34 · 162 阅读 · 0 评论 -
【剑指Offer学习】【面试题59:对称的二叉树】
题目:请实现一个函数来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。解题思路 通常我们有三种不同的二叉树遍历算法,即前序遍历、中序遍历和后序遍历。在这三种遍历算法中,都是先遍历左子结点再遍历右子结点。我们是否可以定义一种遍历算法,先遍历右子结点再遍历左子结点?比如我们针对前序遍历定义一种对称的遍历算法,即先遍历父节点,再遍历它的右子结点,最后遍历它的左子结点。...转载 2020-02-27 09:22:27 · 135 阅读 · 0 评论 -
【剑指Offer学习】【面试题58:二叉树的下一个结点】
题目:给定一棵二叉树和其中的一个结点,如何找出中序遍历顺序的下一个结点?树中的结点除了有两个分别指向左右子结点的指针以外,还有一个指向父节点的指针。解题思路 如果一个结点有右子树,那么它的下一个结点就是它的右子树中的左子结点。也就是说右子结点出发一直沿着指向左子结点的指针,我们就能找到它的下一个结点。 接着我们分析一个结点没有右子树的情形。如果结点是它父节点的左子结点,那么它的下...转载 2020-02-26 23:52:35 · 127 阅读 · 0 评论 -
【剑指Offer学习】【面试题55:字符流中第一个不重复的字符】
题目:请实现一个函数用来找出字符流中第一个只出现一次的字符。举例说明 例如,当从字符流中只读出前两个字符“go”时,第一个只出现一次的字符是‘g’。当从该字符流中读出前六个字符“google”时,第一个只出现1次的字符是”l”。这个问题和之前的问题似乎是一个问题;https://blog.csdn.net/li198847/article/details/104467812...原创 2020-02-25 23:35:29 · 135 阅读 · 0 评论 -
【剑指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 阅读 · 0 评论 -
【剑指Offer学习】【面试题53:正则表达式匹配】
https://blog.csdn.net/derrantcm/article/details/46825653转载 2020-02-25 23:08:35 · 96 阅读 · 0 评论 -
【剑指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 阅读 · 0 评论 -
【剑指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 阅读 · 0 评论 -
【剑指Offer学习】【面试题50:树中两个结点的最低公共祖先】
题目:求树中两个结点的最低公共祖先,此树不是二叉树,并且没有指向父节点的指针。https://blog.csdn.net/I_just_smile/article/details/100167875原创 2020-02-25 21:23:22 · 109 阅读 · 0 评论 -
【剑指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 阅读 · 0 评论 -
【剑指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 阅读 · 0 评论 -
【剑指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 阅读 · 0 评论 -
【剑指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 阅读 · 0 评论 -
【剑指Offer学习】【面试题43 : n 个锻子的点数】
https://blog.csdn.net/derrantcm/article/details/46784575题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s 的所有可能的值出现的概率。...原创 2020-02-24 21:05:29 · 92 阅读 · 0 评论 -
【剑指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 阅读 · 0 评论 -
剑指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 阅读 · 0 评论 -
【剑指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 阅读 · 0 评论 -
剑指Offer学习】【面试题39:二叉树的深度】
题目一:输入一棵二叉树的根结点,求该树的深度。从根结点到叶子点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。int treeLenght(tree * root) { if (NULL == root) { return 0; } int leftLen = treeLenght(root->left); ...原创 2020-02-24 15:44:31 · 77 阅读 · 0 评论 -
【剑指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 阅读 · 0 评论 -
【剑指Offer学习】【面试题37:两个链表的第一个公共结点】
第三种:先行法 在图5.3 的两个链表中,我们可以先遍历一次得到它们的长度分别为5 和4, 也就是较长的链表与较短的链表相比多一个结点。第二次先在长的链表上走1 步,到达结点2。接下来分别从结点2 和结点4 出发同时遍历两个结点, 直到找到它们第一个相同的结点6,这就是我们想要的结果。 第三种思路和第二种思路相比,时间复杂度都是O(m+n), 但我们不再需要辅助的拢,因此提高了空间效率。...原创 2020-02-24 09:29:36 · 78 阅读 · 0 评论 -
【剑指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 阅读 · 0 评论 -
【剑指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 阅读 · 0 评论 -
【剑指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 阅读 · 0 评论 -
【剑指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 阅读 · 0 评论 -
【剑指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 阅读 · 0 评论 -
【剑指Offer学习】【面试题27:二叉搜索树与双向链表】
https://blog.csdn.net/mmwwxx123/article/details/81331893在搜索二叉树中,左子结点的值总是小于父结点的值,右子结点的值总大于父结点的值,因此我们在转换成排序双向链表时,原先指向左子结点的指针调整为链表中前一个结点的指针,原先指向右子结点的指针调整为链表中指向后一个结点指针。中序遍历二叉树有序,把中序遍历的结果链接成双向链表。...原创 2020-02-23 10:24:30 · 102 阅读 · 0 评论 -
【剑指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 阅读 · 0 评论 -
【剑指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 阅读 · 0 评论 -
【剑指Offer学习】【面试题24:二叉搜索树的后序遍历序列】
https://blog.csdn.net/derrantcm/article/details/46705725bool verifyLastRoot(int a[], int start, int end) { if (start >= end) { return true; } int rootValue = a[end]; ...原创 2020-02-22 17:50:28 · 78 阅读 · 0 评论 -
【剑指Offer学习】【面试题23:从上往下打印二叉树】
//考察二叉树的层次遍历,使用辅助队列实现https://blog.csdn.net/derrantcm/article/details/46705719原创 2020-02-22 16:26:57 · 88 阅读 · 0 评论 -
【剑指Offer学习】【面试题22:栈的压入、弹出序列】
http://www.luyixian.cn/news_show_21852.aspxhttps://blog.csdn.net/derrantcm/article/details/46691083bool isOrder(int p[], int lenP, int q[], int lenQ) { if (p == NULL || q == NULL || lenP == ...原创 2020-02-22 16:25:15 · 102 阅读 · 0 评论 -
【剑指Offer学习】【面试题20 : 顺时针打印矩阵】
https://blog.csdn.net/derrantcm/article/details/46691013// 乏味原创 2020-02-22 15:16:07 · 100 阅读 · 0 评论 -
【剑指Offer学习】【面试题19 :二叉树的镜像】
https://blog.csdn.net/derrantcm/article/details/46678173typedef struct treeNode{ int m_nValue; struct treeNode* left; struct treeNode* right;} tree;void mirror(tree* root) { ...原创 2020-02-22 15:04:41 · 98 阅读 · 0 评论 -
【剑指Offer学习】【面试题18 :树的子结构】
https://blog.csdn.net/derrantcm/article/details/46678157typedef struct treeNode{ int m_nValue; struct treeNode* left; struct treeNode* right;} tree;bool match(tree* rp1, tree* rp...原创 2020-02-22 14:44:38 · 79 阅读 · 0 评论 -
【剑指Offer学习】【面试题17 ::合并两个排序的链表】
https://blog.csdn.net/derrantcm/article/details/46678155与合并两个有序数组一个思想 // 当两个链表都不为空就进行合并操作 while (head1 != null && head2 != null) { // 下面的操作合并较小的元素 if...原创 2020-02-22 13:58:17 · 120 阅读 · 0 评论 -
【剑指Offer学习】【面试题16 :反转链表】
https://blog.csdn.net/derrantcm/article/details/46669039typedef struct node{ int m_nValue; struct node* m_pNext;}ListNode;ListNode* reverseList(ListNode* pHead) { if (NULL == pHe...原创 2020-02-22 13:54:11 · 72 阅读 · 0 评论