设计模式-策略模式 Posted on 2020-04-09 | In 设计模式 Words count in article: 787 | Reading time ≈ 4 策略模式定义在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。 类图 Strate ... Read more »
设计模式-组合模式 Posted on 2020-04-09 | In 设计模式 Words count in article: 678 | Reading time ≈ 3 组合模式定义组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。 这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象 ... Read more »
LCP 猜数字 Posted on 2020-04-09 | In leetcode Words count in article: 231 | Reading time ≈ 1 题目小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜。他们一共进行三次这个游戏,请返回 小A 猜对了几次? 输入的guess数组为 小A 每次的猜测,answer数组为 小B 每次的选择。guess和answer的长度都等于3。 ... Read more »
面试题 02.02. 返回倒数第 k 个节点 Posted on 2020-04-09 | In leetcode Words count in article: 148 | Reading time ≈ 1 题目实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。 示例1:12输入: 1->2->3->4->5 和 k = 2输出: 4 提示:给定的 k 保证是有效的。 解法解法一:双指针,p1,p2同时指向head。p2先向前移动k步,然后p1,p2一起向前移动, ... Read more »
面试题05. 替换空格 Posted on 2020-04-09 | In leetcode Words count in article: 112 | Reading time ≈ 1 题目请实现一个函数,把字符串 s 中的每个空格替换成”%20”。 示例 1:12输入:s = "We are happy."输出:"We%20are%20happy." 解法解法一:使用库函数 JAVA123public String replaceSpac ... Read more »
面试题 04.02. 最小高度树 Posted on 2020-04-09 | In leetcode Words count in article: 177 | Reading time ≈ 1 题目给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树。 示例1:123456789给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 ... Read more »
面试题 04.04. 检查平衡性 Posted on 2020-04-09 | In leetcode Words count in article: 183 | Reading time ≈ 1 题目实现一个函数,检查二叉树是否平衡。在这个问题中,平衡树的定义如下:任意一个节点,其两棵子树的高度差不超过 1。 示例1:123456789给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: ... Read more »
面试题 05.01. 插入 Posted on 2020-04-09 | In leetcode Words count in article: 239 | Reading time ≈ 1 题目给定两个整型数字 N 与 M,以及表示比特位置的 i 与 j(i <= j,且从 0 位开始计算)。 编写一种方法,使 M 对应的二进制数字插入 N 对应的二进制数字的第 i ~ j 位区域,不足之处用 0 补齐。具体插入过程如图所示。 题目保证从 i 位到 j 位足以容纳 M, 例如: ... Read more »
面试题 05.03. 翻转数位 Posted on 2020-04-09 | In leetcode Words count in article: 126 | Reading time ≈ 1 题目给定一个32位整数 num,你可以将一个数位从0变为1。请编写一个程序,找出你能够获得的最长的一串1的长度。 示例1:12输入: num = 1775(110111011112)输出: 8 示例2:12输入: num = 7(01112)输出: 4 解法解法一:递归建树 Java123456 ... Read more »
339. 嵌套列表权重和 Posted on 2020-04-09 | In leetcode Words count in article: 216 | Reading time ≈ 1 题目给定一个嵌套的整数列表,请返回该列表按深度加权后所有整数的总和。 每个元素要么是整数,要么是列表。同时,列表中元素同样也可以是整数或者是另一个列表。 示例 1:123输入: [[1,1],2,[1,1]]输出: 10 解释: 因为列表中有四个深度为 2 的 1 ,和一个深度为 1 的 2。 示 ... Read more »