设计模式入门 设计模式入门 学习编程已经有一年多了,一直都没能力开发一个大型的App,由于对计算机课程体系知识的欠缺,一直不知道自己到底是差在什么地方,还以为自己只是单纯写的代码太少。直到大一期末Java项目实践的时候通过泡泡糖项目,当时看到那个项目里的ScoreManager、ScoreService这样的更抽象的类就觉得这些类与课本里所说的用于描述事物特征的类不太一样,也跟课本里描述一类东西特征的抽象类不 2019-11-22 学习 > 设计模式
2019·秋 2019·秋 ifLab 这个秋天,最重要的事情就是加入了 ifLab。一直以来,我都在大学里苦苦寻找,寻找一个像家一样的地方。去年秋天我找到了604,但好景没多长,那个地方就再也不能使用了。后来我找到了图书馆二楼的英文研讨室,但那个地方的闭馆时间太早,很难让我尽兴的学习。苦苦寻觅了一年多,最后我在 ifLab 找到了一个像家一样的地方,就是ifLab的实验室。 自从知道了这个实验室的存在,我 2019-11-17 杂谈 > 无病呻吟 #成长
做一个 iOS 计算器 App 做一个 iOS 计算器 App 这是我第一次完整的做一个 iOS App,算是一个简单的 Demo。可以熟悉简单的单视图层级的 Single View App 的开发过程。iOS 自带的计算器实在是难用,所以这个计算器会针对 iOS 自带计算器的一些痛点作出改进。 目标 [ ] 逻辑 [x] 最基本的四则运算 [x] 可随时修改已输入的计算式 [x] 实时显示当前算式的计算结果 [ ] 可 2019-11-13 学习 > iOS #MVP
LeetCode刷题笔记(100-199) LeetCode刷题笔记(100-199) 【100】相同的树 解题记录 最近正好在学树的遍历,这题自然而然想到通过递归实现,若当前两棵树对应的元素值不同则直接返回false,否则一直遍历直到两棵树都为空,若有一棵树提前为空则也返回false。 相关标签 树、深度优先搜索 【101】对称二叉树 解题记录 这题与100题相似,还是考察树的基本使用,依旧是使用递归,对两棵子树的对称节点进行 2019-11-09 学习 > LeetCode
二叉树的非递归遍历 二叉树的非递归遍历 二叉树最基础的插入,删除,生成以及递归遍历等内容不再赘述,这里只讨论二叉树的非递归遍历。 前序遍历 在二叉树的三种遍历中,前序遍历是最简单的,其次是中序遍历,最难的是后序遍历。前序遍历的原理是利用了栈。观察如下一颗二叉树: 要对其进行前序遍历,我们从根节点1开始,先输出根节点的值,同时一直向下遍历左子树,与此同时只要右子树不为空,就将右子树压入栈,并将指针移到它的左子树上 2019-11-03 学习 > 算法 #二叉树
初识 KMP 算法 初识 KMP 算法 朴素算法 在介绍KMP算法之前我们需要先介绍朴素算法。 我们常常会需要进行字符串的匹配,例如在 abababca 这个字符串中找到 ababca 的位置在哪。在传统的朴素匹配算法中,我们需要从两个字符串的头部开始比较,如果相等则匹配第二个字符,直到遇见不相等的字符。以刚才的例子说明:我们将待匹配的字符串,也就是较短的那个叫做子串,被匹配的字符串,也就是较长的那个叫做主串。我 2019-10-31 学习 > 算法 #KMP
LeetCode刷题笔记(1-99) LeetCode刷题笔记(1-99) 【2】两数相加 解题记录 简单的链表合并,只是合并的话其实不难,遍历两个链表,将相加的结果存入新的链表,同时设置进位标记符检查是否发生进位。这里讲讲怎么利用Swift的语法可以把这题的代码写的更短小精悍。一般我们在合并两个链表的时候,合并完以后需要检查两个链表有哪一个还没有到尾,再将没有到末尾的链表单独处理。在Swift中利用可选类型可以将这段代码写的更 2019-10-28 学习 > LeetCode
Swift 学习笔记——可选类型 Swift 学习笔记——可选类型 可选类型与隐式展开可选项 使用 ? 跟随在变量类型之后可以将一个变量声明为可选类型,这意味着这个变量要么是指定类型的值,要么是空。换句话说当我们给一个可选类型变量赋值的时候如果赋值失败,那么这个变量的值就是 nil 。下面是一个简单的实例。 123var str : String = "123;"var num : Int? = Int(s 2019-10-28 学习 > iOS #Swift
利用循环链表解决约瑟夫问题 利用循环链表解决约瑟夫问题 问题简介 约瑟夫问题(Josephus Problem)意思是有n个人围成一圈(这个圈可以叫做约瑟夫环),从某一个指定的人开始报数,每报数到一个给定的数,那么将那个人剔除出这个圈,从下一个人开始重新报数,循环往复直到只剩下一个人为止。这个其实很像小时候一群人围坐在一起玩的丢手绢游戏。 关于循环链表 在所有的数据结构里,与约瑟夫环在逻辑结构上最为相似的就是循环链表。 2019-10-25 学习 > 算法 #链表
N皇后问题的回溯算法 N皇后问题的回溯算法 问题简介 首先介绍八皇后问题,八皇后问题以国际象棋作为背景,问题的描述是如何在8x8的棋盘中放下8个皇后,使得这8个皇后互相不攻击。皇后的攻击规则是同一行、列或斜线上,也就是说,要在8x8的棋盘上放8个点使得这8个点没个点在行、列、对角线上都不会有第二个点。 而N皇后问题就是八皇后问题的推广,在NxN的棋盘中放置N个点,使得这N个点互相之间无法攻击。 这只是八皇后问题的 2019-10-17 学习 > 算法 #回溯