摘要: Code That Writes Code 6.1 Coding your way to the weekend 6.2 Kernel#eval, Binding#eval Binding: Objects of class Binding(类Binding的对象) encapsulate (密封) 阅读全文
posted @ 2018-03-15 16:57 Mr-chen 阅读(154) 评论(1) 推荐(0)
摘要: 类宏 环绕别名 singleton class Class就是增强的模块,类定义也就是模块定义。 5.1 Class Definitions Demystified 5.11 Inside Class Definitions 美 [,dɛfɪ'nɪʃən] Self关键字:Ruby的每一行代码都会在 阅读全文
posted @ 2018-03-13 09:57 Mr-chen 阅读(209) 评论(0) 推荐(0)
摘要: 第4章代码块blocks 基础知识 作用域:用代码块携带variables through scopes 通过传递block给instance_eval方法来控制作用域。 把block转换为Proc,lambda这样的可反复调用的对象。4.5 4.12基础 def a_method(a,b) a + 阅读全文
posted @ 2018-03-11 11:46 Mr-chen 阅读(224) 评论(0) 推荐(0)
摘要: 第3章methods Ruby是动态语言,有静态语言实现不了的技巧。本章讲解代码的重构,把代码变得更简洁。 3.2Dynamic Methods 3.21Calling Methods Dynamically Dynamic Dispatch(动态派发技巧):使用Object#send方法,方法名是 阅读全文
posted @ 2018-03-09 11:06 Mr-chen 阅读(115) 评论(0) 推荐(0)
摘要: 《Ruby元编程》 第二章 对象模型 类定义揭秘inside class definitions: class关键字更像一个作用域操作符,核心作用是可以在里面随时定义方法。 [].methods.grep(/^re/):调用 出Array的所有以re开头的method. Monkeypatch:涉及 阅读全文
posted @ 2018-03-08 21:53 Mr-chen 阅读(199) 评论(0) 推荐(0)
摘要: 快速二分法的疑点解惑:为啥先右j移动?因为设定a[left]为基准数 思路:(查看了网上的2篇文章,关键点就是谁为基准数,我自己又尝试了不同排序,不同基准数left,right。得出👆的结论) 步骤: 1. 在序列中设a[left]为基准数。最左边设i,最右边设j(目标是从大到小排列) 2. 先从 阅读全文
posted @ 2018-03-06 11:47 Mr-chen 阅读(237) 评论(0) 推荐(0)
摘要: 在本章我遇到了c语言的struct数据,即自定义的数据结构。比如: struct edge { int u; int v; int w; }; 题目给了一组数据,用edge储存。需要按照w大小排序。我开始不知道如何用ruby实现,后来想到之前的题目也遇到过(小猫钓鱼)。我定义了一个类,在类中储存了数 阅读全文
posted @ 2018-03-04 16:39 Mr-chen 阅读(217) 评论(0) 推荐(0)
摘要: 常见的数据结构 数组(Array) 堆栈(Stack) 队列(Queue) 链表(Linked List) 树(Tree) 图(Graph) 堆(Heap) 散列表(Hash) 第7章,神奇的树。 第一节,树的特点。 1.一个节点到另一个节点只有唯一路径 2.n个节点n-1个边。 3.在一颗树中加一 阅读全文
posted @ 2018-03-02 12:10 Mr-chen 阅读(186) 评论(0) 推荐(0)
摘要: 第一节 只有五行的算法Floyd算法 问题:求任意两个城市之间的最短路径?多源最短路径。 解法1:O(n ²)的深度或广度遍历优先搜索 解法2:Floyd,O(n³) Floyd 算法:从i号点到j 号点最多经过k个点的最短路径。--一种动态规划的思想 可以处理边的值为负数的图,但不能处理有负权回路 阅读全文
posted @ 2018-02-27 10:25 Mr-chen 阅读(260) 评论(0) 推荐(0)
摘要: 第一节,深度和广度优先指啥 针对图的遍历而言的。 常用的储存方法是图的二维数组e,图的邻接矩阵储存法。 还有很多种储存方法,如邻接表。 深度优先遍历的主要思想:沿着图的某一分支遍历直到末端,然后回朔,然后再沿着另一条进行同样的遍历,直到所有顶点都被访问过为止。 广度优先遍历的主要思想:首先以一个未被 阅读全文
posted @ 2018-02-25 20:35 Mr-chen 阅读(275) 评论(0) 推荐(0)