使用CAShaperLayer和UIBezier可解。corners参数可选:corners:UIRectCornerTopRight | UIRectCornerTopLe...
使用CAShaperLayer和UIBezier可解。corners参数可选:corners:UIRectCornerTopRight | UIRectCornerTopLe...
平衡二叉树(AVL树)是一种二叉排序树,其中每个结点的左子树和右子树的高度差至多等于1。 高度平衡意思是说,要么它是一颗空树,要么它的左子树和右子树都是平衡二叉树,且左子树和...
二叉排序树,又称二叉查找树。它拥有以下性质。1.若它的左子树不空,则左子树上所有结点的值均小于它的根结构的值。2.若它的右子树不空,则右子树上的所有结点的值均大于它的根结点的...
https://juejin.im/post/5e9ff807f265da480c03368c
BF算法 BF(Brute Force)算法,即暴力匹配算法 如果在字符串A中查找字符串B,那么字符串A就是主串,字符串B就是模式串。把主串得长度记为n,模式串得长度记为m,...
哈夫曼思考 我们来看一个简单的问题,从小到大我们面临了很多的考试,小学-初中-高中… 然后老师对学生是如何进行区分的呢,不能说你考85他考73而让老师记住每个人的分数,而是通...
内存布局 代码段:保存程序二进制。bss:一般保存全局静态变量等。data:保存初始化的全局变量,静态变量。栈:保存函数,方法。iOS开发中一般为0x7段。堆:通过alloc...
1.问设计要需要用到的字体。并拷贝到项目。 2.在info.plist中增加Fonts provided by application 然后打印一下需要使用到的字体 接下来就...
相对于GCD。NSOperation更加灵活,能够自如地操作生命周期。 NSOperation是一个抽象的类,在使用时,使用的是他的两个子类NSInvocationOpera...
事实上,多线程并不是多条线程同时执行的。在处理线程的过程中,由时间片控制cpu执行哪条线程,不过这过程太快了,会有种线程同时进行的感觉。设置线程的优先级可以享受到更多的cpu...
树的概念 首先,让我们来了解一下树的一些基本概念。下图为一颗一般树。 树,有且只有一个根结点,哪怕只有一个结点,它其实也是一棵树。孩子:如图,B,C,D为A的孩子。度:结点所...
在研究runloop之前,先让我们了解一下程序,进程和线程。 程序本身只是指令、数据及其组织形式的描述,进程才是程序(那些指令和数据)的真正运行实例。而线程是操作系统能够进行...
一,字典转模型 经典的第三方库MJExtensionhttps://www.jianshu.com/p/9b0b7cbc1d3c 二,无侵入埋点(系统方法替换) https:...
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的...
runtime的三种调用方式1.runtime api2.NSObject api3.OC上层方法 @selector OC对象 OC对象的本质是一个结构体。由ivars,i...
首先实现一个顺序存储的栈。 一。括号匹配检验 假设表达式中允许包含两种括号:圆括号和方括号,其嵌套顺序随意,即()或者[([][])]都是正确的,而这[(]或者(()])或者...
栈 栈(Stack)是一种线性存储结构,它具有如下特点:栈中的数据元素遵守”后进先出”(First In Last Out)的原则,简称FILO结构。限定只能在栈顶进行插入和...
双向链表 双向链表的node分为三个部分,前驱结点,数据,后继结点 设计一个带有头结点的双向链表,优点在于当需要插入新结点的时候,不需要考虑index为第一个的情况。只需特殊...