- 博客(182)
- 收藏
- 关注
原创 《重构》读书笔记12(第十二章完结)
第12章 处理继承关系12.1函数上移&12.4函数下移互为逆重构。子类中有重复代码就可以考虑上移到父类,而父类中的函数如果只与个别子类有关就可以下移。12.2字段上移&12.5字段下移互为逆操作。子类有类似字段可以考虑上移到父类,父类的字段只在被个别子类用到可以考虑下移。12.3构造函数本体上移其实和函数上移差不多,只是构造函数比较特殊专门拿出来说。12.6以子...
2020-01-27 15:19:25 324
原创 《重构》读书笔记11(第十一章完结)
第11章 重构API11.1将查询函数和修改函数分离必须得分离,不然每次查询都会造成修改,很有可能会产生副作用。要么查询要么修改,一次只做一件事,不要混在一块做,把原来的函数拆成两个责任明确的函数。-tbc-...
2020-01-16 23:12:10 254
原创 《重构》读书笔记10(第十章完结)
第10章 简化条件逻辑10.1分解条件表达式就是把条件判断和对应处理都抽成函数,因为开发久了一个条件可能很复杂读起来很费劲,该条件下做的事情也有一堆,不如都用函数包起来取个好理解的名字,代码可读性就会提高很多,结构清晰,以后要改什么直接在函数里搞,不用担心把原函数调整乱了。10.2合并条件表达式对应同样处理的可以把这些条件用或运算合并。if里又if的可以用与运算合并。10.3以卫语句取代...
2020-01-13 01:04:18 303
原创 《重构》读书笔记9(第九章完结)
第9章 重新组织数据9.1拆分变量一个变量只承担一个责任,不要重复的使用一个临时变量,尽管在刷oj题目的时候可能会为了减少内存占用使用了尽可能少的临时变量而声明了一个tmp临时变量就一直用,但在实际开发中还是(在没有性能问题的前提下)以代码清晰可读为准则。输入的参数尽可能不要去修改它,如果是以此输入参数为基准做处理那可以先声明另一个变量把输入参数赋值过去。总之,一个变量的名字就是它承担责任...
2020-01-08 00:13:15 243
原创 《重构》读书笔记8(第八章完结)
第8章 搬移特性8.1 搬移函数把函数搬到与之关联比较密切的地方去,这样做既能让代码比较容易理解,也有利于封装(这一点我还不明白等懂了再来补充)。举的例子是内部函数搬到顶层和搬移函数到另一个类。内部函数搬移到顶层是可以方便其他函数调用,类之间搬移函数是因为这个函数和另一个类关系更密切。-tbc-...
2020-01-01 19:11:14 220
原创 《重构》读书笔记7(第七章完结)
前几章以后补上7.1封装记录把记录封装成类。比如一条用json格式存储的记录,是一些字段名和其对应的值:{name: "xxx", country: "GB"}可能还有嵌套。(暂略)为什么要封装成类呢?用记录不挺简单的吗?自己写的时候是简单,等过两个礼拜再来看就不是这么回事儿了,如果是debug看别人代码就更想当场去世了,不知道里面究竟有哪些字段,不知道在哪里用了、哪里修改了,总之是一...
2019-12-23 23:44:30 279 1
原创 用octopress搭建博客时遇到的一些问题
换了octopress,其实感觉差不多……基本上遇到的问题都被人解决过了,只要搜索技能过关都能搞定。主要参考了:mac电脑上搭建octopress博客写一下按照上述博客来做的过程中遇到的问题问题1:rake deploy的时候遇到如下:ERROR: Repository not found.fatal: Could not read from remote repository.解决:(重新)$
2017-04-15 22:12:02 306
原创 用hexo搭建博客时遇到的一些问题
最近写的笔记和文章开始多了,散落在各个文件夹里不好管理,想着自己搞个博客吧。去年这个时候师兄就跟我说可以搞起来了,结果又拖到现在……>_<就按照hexo官网文档一步步来吧: Documentation安装node.js和git都是用homebrew安装的,基本都是一个命令就安装了,非常方便。有的关于环境变量的什么什么还是没搞懂,等学了再说吧。(不知道直接到官网上下载一个会更方便吗?)git自带了,
2017-04-15 00:02:23 491 1
原创 用openssl实现DES和AES算法时遇到的小问题
问题1:可能因为是用homebrew安装的openssl,编译时找不到头文件,大概长这样:'openssl/ssl.h' file not found#include <openssl/ssl.h> ^1 error generated.解决方案:xcode-select --install 参考:openssl/ssl.h not found but installed w
2017-04-13 22:52:56 741
原创 波特率与比特率
波特率和比特率自己理解了之后写个记录,如果有错,欢迎指正。1.比特率比特率顾名思义,是单位时间内传输了多少位(比特),单位是bit/s。波特率并不是比特率,只是有时候和比特率正好相等而已。2.编码要理解波特率,就要知道编码(调制)。举个简单的例子:01001111这串信号有8位(比特),如果一位一位的来看,那就是有两种不同的离散值0和1。但是假设现在经过调制,我们现在认为每两个bit作为「一个符
2017-04-08 16:43:27 42658 26
原创 Mac os X上openssl从安装到更新
标题党了,其实就是从来没用过openssl的新手学着用的历程记录。信息安全课要做实验,要用openssl。step 1:打开官网:https://www.openssl.org/source/ 要下载源码自己编译?还没搞过,想搜一搜怎么弄。然后顺手打开了终端,输入了openssl version 居然得到了回应OpenSSL 0.9.8zh 14 Jan 2016 说明已经有openssl
2017-04-06 20:39:16 8630
原创 如何在 Objective-C 项目中使用 Swift 类...to be continued...
如何在 Objective-C 项目中使用 Swift 类…to be continued…最近在写(抄)一个ios上的相机应用,项目用OC写的,抄到一个swift类时发现不能用,搜索了一下,根据这篇文章解决了问题,记录一下:如何在 Objective-C 项目中使用 Swift 类目前还没有遇到新的问题,如果有就回来记录一下.-TBC-
2017-03-26 21:12:40 456
原创 81.Search in Rotated Sorted Array II
81.Search in Rotated Sorted Array II2017-03-16本作品采用“Creative Commons 署名-非商业性使用-相同方式共享 3.0 Unported (cc by-nc-sa)”进行许可。http://creativecommons.org/licenses/by-nc-sa/3.0/所有代码参考:LeetCode题解,151道题完整版vers
2017-03-16 23:29:05 302
原创 33.Search in Rotated Sorted Array
33.Search in Rotated Sorted Array2017-03-16直接搜应该也可以,但既然是有序的,大约是可以利用一下二分法关键就是二分法怎么在这种特殊的情况下进行改进本作品采用“Creative Commons 署名-非商业性使用-相同方式共享 3.0 Unported (cc by-nc-sa)”进行许可。http://creativecommons.org/lice
2017-03-16 21:48:44 249
原创 80.Remove Duplicates from Sorted Array II
80.Remove Duplicates from Sorted Array II2017-03-10本作品采用“Creative Commons 署名-非商业性使用-相同方式共享 3.0 Unported (cc by-nc-sa)”进行许可。http://creativecommons.org/licenses/by-nc-sa/3.0/所有代码参考:LeetCode题解,151道题完整版
2017-03-10 23:39:57 231
原创 26.Remove Duplicates from Sorted Array
26.Remove Duplicates from Sorted Array2017-03-09一开始连题目意思都理解错了……题意是「连续」的重复数字保留一个,不是所有重复的数字中保留一个,因为这个array已经是sorted了,所以说注意审题很重要。本作品采用“Creative Commons 署名-非商业性使用-相同方式共享 3.0 Unported (cc by-nc-sa)”进行许可。
2017-03-10 00:30:37 301
原创 1123.Is It a Complete AVL Tree (30)
1123.Is It a Complete AVL Tree (30)pat-al-11232017-03-07是否是完全二叉树的判断:如果出现了一个空结点后又继续出现了非空结点,那么就不是完全二叉树了/** * pat-al-1123 * 2017-03-07 * Cpp version * Author: fengLian_s */#include<stdio.h>#inclu
2017-03-07 12:58:22 334
原创 笔试练习题002...to be continued...
笔试练习题002…to be continued…数据库,五种基本关系代数运算:并、差、笛卡尔积(×)、投影(σ,垂直分割,选列)、选择(π,水平分割,选元祖)分时系统四个特点:多路、独立、及时、交互函数返回类型为指针时,返回值没有使用new或者malloc分配内存时会被存在栈区,函数返回后栈区内存释放,会产生野指针,输出结果未知进行数据库提交操作时使用事物是为了保证数据一致性关于线程:
2017-03-06 23:36:47 301
原创 笔试练习题001...to be continued...
笔试练习题001…to be continued… 加粗代表未解决问题希尔排序的时间复杂度和增量的选取有关,下界是O(nlogn),不稳定输入非法时能给出适当处理,是健壮性冒泡排序的比较次数霍夫曼编码:每次取出两个权值最小的合并再放回去快排在数据基本无序时最有优势二分查找:如果大于num[mid], left = mid + 1;小于则right = mid - 1(注意mid位置的数
2017-03-05 22:55:33 372
原创 1098.Insertion or Heap Sort (25)
1098.Insertion or Heap Sort (25)pat-al-10982017-03-05和“插入排序还是归并排序”是一个套路插入排序偷懒用了sort来排堆排要先建堆(对前一半的结点从下向上的每一个都进行一下fixdown),然后将堆顶元素和尾元素交换,(用大根堆,排完序之后得到的就是从小到大的序列),然后整个堆的size-1/** * pat-al-1098 * 201
2017-03-05 13:37:27 210
原创 1127.ZigZagging on a Tree (30)
1127.ZigZagging on a Tree (30)pat-al-11272017-03-04今天考试把这题想错了……就得了1分……写的有点麻烦,先按照层次遍历全部输出到数组,同时记录每层有多少个结点,输出的时候根据当前是奇数层还是偶数层来决定顺序还是逆序输出(由于保存了每层有多少个,可以把输出的下标范围限制住)/** * pat-al-1127 * 2017-03-04 * C
2017-03-04 19:31:26 493
原创 1097.Deduplication on a Linked List (25)
1097.Deduplication on a Linked List (25)pat-al-10972017-03-03使用order来记录是第几个结点,一个巧妙的方式分开了需要保留下来的结点和需要摘除的结点/** * pat-al-1097 * 2017-03-03 * Cpp version * Author: fengLian_s */#include<stdio.h>#i
2017-03-04 00:22:37 300
原创 1090.Highest Price in Supply Chain (25)
1090.Highest Price in Supply Chain (25)pat-al-10902017-03-03dfs和bfs应该都可以实现,这次尝试了dfs/** * pat-al-1090 * 2017-03-03 * Cpp version * Author: fengLian_s */#include<stdio.h>#include<vector>#define
2017-03-03 23:07:19 651
原创 1102.Invert a Binary Tree (25)
1102.Invert a Binary Tree (25)pat-al-11022017-03-03因为数据量就在10以内,所以读入可以用:scanf(“%*c%c %c”, &ch1, &ch2);不用先翻转,直接把左右孩子调用顺序反过来就可以了/** * pat-al-1102 * 2017-03-03 * Cpp version * Author: fengLian_s */
2017-03-03 22:43:28 289
原创 1107.Social Clusters (30)...to be continued...
1107.Social Clusters (30)…to be continued…pat-al-11072017-03-03并查集重点是findFather和Union两个函数,findFather中的路径压缩要不要写视情况/** * pat-al-1107 * 2017-03-02 * Cpp version * Author: fengLian_s */#include<st
2017-03-03 22:05:08 425
原创 1103.Integer Factorization (30)...to be continued...
1103.Integer Factorization (30)…to be continued…pat-al-11032017-03-02dfs要记录的数据有点多,要细心/** * pat-al-1103 * 2017-03-02 * Cpp version * Author: fengLian_s */#include<stdio.h>#include<vector>usin
2017-03-03 00:40:58 361
原创 1101.Quick Sort (25)
1101.Quick Sort (25)pat-al-11012017-03-02思路和1093差不多,都是从前向后和从后向前扫描记录当前最大/最小的数据,和当前数据做比较坑见注释/** * pat-al-1101 * 2017-03-02 * Cpp version * Author: fengLian_s */#include<stdio.h>#define MAX 1000
2017-03-02 19:37:19 282
原创 1093.Count PAT's (25)...to be continued...
1093.Count PAT’s (25)…to be continued…pat-al-10932017-03-02乙级好像有这题暴力会超时,对于每个A,只要知道它前面多少个P和后面有多少T/** * pat-al-1093 * 2017-03-02 * Cpp version * Author: fengLian_s */#include<stdio.h>#include<s
2017-03-02 18:00:34 229
原创 1091.Acute Stroke (30)...to be continued...
1091.Acute Stroke (30)…to be continued…pat-al-10912017-03-01三维情况的bfs要注意的是六个方向上:位置是否合法、是否被访问过、是否不为1/** * pat-al-1091 * 2017-03-01 * Cpp version * Author: fengLian_s */#include<stdio.h>#include
2017-03-01 23:55:11 256
原创 1082.Read Number in Chinese (25)...to be continued...
1082.Read Number in Chinese (25)…to be continued…pat-al-10822017-03-01参考:《算法笔记:上机训练实战指南》(机械工业出版社)/** * pat-al-1082 * 2017-03-01 * Cpp version * Author: fengLian_s */#include<stdio.h>#include<s
2017-03-01 22:57:01 342
原创 1079.Total Sales of Supply Chain (25)
1079.Total Sales of Supply Chain (25)pat-al-10792017-03-01bfs二维数组vector加队列和level数组实现/** * pat-al-1079 * 2017-03-01 * Cpp version * Author: fengLian_s */#include<stdio.h>#include<vector>#incl
2017-03-01 21:01:25 175
原创 1078.Hashing (25)
1078.Hashing (25)pat-al-10782017-03-01要求的素数范围不大,用简单的求法就可以,具体见代码主要是二次探测法,题目只要求i为正数的情况,稍微简单一点,注意i最多为(表的大小-1)/2如果忘记二次探测法,就不写了,也能获得20分,启发:如果不能全做对,也尽量作出更高的分数/** * pat-al-1078 * 2017-03-01 * Cpp versi
2017-03-01 19:53:08 223
原创 1076.Forwards on Weibo (30)
1076.Forwards on Weibo (30)pat-al-10762017-03-01bfs,用queue,对于每个数据要有visited和level的判断,所以开两个数组利用vector来作为每行长短不等的二维数组,用来存放i和i的followers/** * pat-al-1076 * 2017-03-01 * Cpp version * Author: fengLian
2017-03-01 19:15:03 390
原创 1074.Reversing Linked List (25)
1074.Reversing Linked List (25)pat-al-10742017-03-01乙级做过,再做一遍就很顺手了不知道有没有无效节点,反正也很简单,就写了一些利用vector来存放有效节点主要是用到reverse函数,这样写就很简单了reverse之后,在把后一个节点的地址赋给当前节点的next,别忘了把最后一个节点的next置位-1/** * pat-al-1074
2017-03-01 18:20:08 263
原创 1067.Sort with Swap(0,*) (25)...to be continued...
1067.Sort with Swap(0,*) (25)…to be continued…pat-al-10672017-03-01pos[i]的内容表示的是:数字i所在的位置;这样来简化操作。一个注意的地方,如果0换到最终位置上要把它跟不在自己最终位置上的数(此处选的是最小的那个)交换;而且本次交换也要记录搞不懂的话先手工模拟一下/** * pat-al-1067 * 2017-03
2017-03-01 16:47:33 266
原创 1066.Root of AVL Tree (25)...to be continued...
1066.Root of AVL Tree (25)…to be continued…pat-al-10662017-03-01AVL树,主要是搞清楚四种情况对应的调整方案,以及左旋和右旋的写法坑见注释/** * pat-al-1066 * 2017-03-01 * Cpp version * Author: fengLian_S */#include<stdio.h>#incl
2017-03-01 15:56:33 299
原创 1063.Set Similarity (25)
1063.Set Similarity (25)pat-al-10632017-03-01用set做比较简单题目不难,不过一开始是想着使用公式:(len1 + len2 - len3)/len3,但这样需要将待查询的两个set合并,最后一个测试点超时然后换了比较的方式,就AC了。要注意的是set中的find函数,是通过其返回值是否等于s.end()来判断的,返回值并不是布尔类型(true和fa
2017-03-01 15:10:50 282
原创 1062.Talent and Virtue (25)
1062.Talent and Virtue (25)pat-al-10622017-03-01乙级做过,这次又做了一遍,感觉流畅多了,并做了优化利用state来保存等级(sage、nobleman、foolman和其他),在比较函数cmp中直接利用这个排序,就不必将四种学生分在四个数组里了利用vector来保存/** * pat-al-1062 * 2017-03-01 * Cpp
2017-03-01 14:38:03 263
原创 1060.Are They Equal (25)...to be continued...
1060.Are They Equal (25)…to be continued…pat-al-10602017-03-01不能眼高手低……string的使用大坑:对于多个前置位是0的处理:s.erase()对于数据本身是0的特殊处理,要将指数e置为0先一边求e,一边处理数据(对于前置位是0的处理);然后利用string把经过初始处理的数据转变成最终需要的数据/** * pat-al-
2017-03-01 14:01:53 195
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人