![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Leetcode
洲洋的编程课堂
希望组件一个快乐的编程社区
展开
-
如何快速准备面试中的算法,获得 Offer?
如何快速准备面试中的算法,获得 Offer?现如今越来越多的公司在面试过程中会考察数据结构和算法。在最近几年,难度颇有上升趋势。因此作为求职者,在面试前刷刷题似乎已经成为准备过程中必不可少的环节了。在 5 年前,Leetcode 只有 200 道左右的题目,不仅数量少,而且题目种类也不全面。求职者为了刷算法,除了“泡” Leetcode 以外,还需要去看《剑指 offer》、《编程之美》、《编...原创 2020-03-01 21:55:13 · 977 阅读 · 0 评论 -
设计模式 - 解释器
解释器(Interpreter)Intent为语言创建解释器,通常由语言的语法和语法分析来定义。Class DiagramTerminalExpression:终结符表达式,每个终结符都需要一个 TerminalExpression。Context:上下文,包含解释器之外的一些全局信息。 Implementation以下是一个规则检验器实现,具有 and 和 or 规则,通过...原创 2020-02-01 18:14:54 · 60 阅读 · 0 评论 -
设计模式 - 观察者
7. 观察者(Observer)Intent定义对象之间的一对多依赖,当一个对象状态改变时,它的所有依赖都会收到通知并且自动更新状态。主题(Subject)是被观察的对象,而其所有依赖者(Observer)称为观察者。 Class Diagram主题(Subject)具有注册和移除观察者、并通知所有观察者的功能,主题是通过维护一张观察者列表来实现这些操作的。观察者(Observer...原创 2020-02-01 18:13:28 · 80 阅读 · 0 评论 -
设计模式 - 工厂方法
工厂方法(Factory Method)Intent定义了一个创建对象的接口,但由子类决定要实例化哪个类。工厂方法把实例化操作推迟到子类。Class Diagram在简单工厂中,创建对象的是另一个类,而在工厂方法中,是由子类来创建对象。下图中,Factory 有一个 doSomething() 方法,这个方法需要用到一个产品对象,这个产品对象由 factoryMethod() 方法创建。...原创 2020-02-01 18:12:49 · 201 阅读 · 0 评论 -
设计模式 - 访问者
访问者(Visitor)Intent为一个对象结构(比如组合结构)增加新能力。Class DiagramVisitor:访问者,为每一个 ConcreteElement 声明一个 visit 操作ConcreteVisitor:具体访问者,存储遍历过程中的累计结果ObjectStructure:对象结构,可以是组合结构,或者是一个集合。 Implementationpubl...原创 2020-02-01 18:08:07 · 68 阅读 · 0 评论 -
设计模式 - 迭代器
迭代器(Iterator)Intent提供一种顺序访问聚合对象元素的方法,并且不暴露聚合对象的内部表示。Class DiagramAggregate 是聚合类,其中 createIterator() 方法可以产生一个 Iterator;Iterator 主要定义了 hasNext() 和 next() 方法;Client 组合了 Aggregate,为了迭代遍历 Aggregate,...原创 2020-02-01 18:07:10 · 65 阅读 · 0 评论 -
设计模式 - 代理
代理(Proxy)Intent控制对其它对象的访问。Class Diagram代理有以下四类:远程代理(Remote Proxy):控制对远程对象(不同地址空间)的访问,它负责将请求及其参数进行编码,并向不同地址空间中的对象发送已经编码的请求。虚拟代理(Virtual Proxy):根据需要创建开销很大的对象,它可以缓存实体的附加信息,以便延迟对它的访问,例如在网站加载一个很大图片时...原创 2020-02-01 18:06:35 · 71 阅读 · 0 评论 -
设计模式 - 抽象工厂
4. 抽象工厂(Abstract Factory)Intent提供一个接口,用于创建 相关的对象家族 。Class Diagram抽象工厂模式创建的是对象家族,也就是很多对象而不是一个对象,并且这些对象是相关的,也就是说必须一起创建出来。而工厂方法模式只是用于创建一个对象,这和抽象工厂模式有很大不同。抽象工厂模式用到了工厂方法模式来创建单一对象,AbstractFactory 中的...原创 2020-02-01 18:05:26 · 208 阅读 · 0 评论 -
设计模式 - 策略
9. 策略(Strategy)Intent定义一系列算法,封装每个算法,并使它们可以互换。策略模式可以让算法独立于使用它的客户端。Class DiagramStrategy 接口定义了一个算法族,它们都实现了 behavior() 方法。Context 是使用到该算法族的类,其中的 doSomething() 方法会调用 behavior(),setStrategy(Strateg...原创 2020-02-01 18:03:59 · 76 阅读 · 0 评论 -
设计模式 - 备忘录
备忘录(Memento)Intent在不违反封装的情况下获得对象的内部状态,从而在需要时可以将对象恢复到最初状态。Class DiagramOriginator:原始对象Caretaker:负责保存好备忘录Memento:备忘录,存储原始对象的的状态。备忘录实际上有两个接口,一个是提供给 Caretaker 的窄接口:它只能将备忘录传递给其它对象;一个是提供给 Originator ...原创 2020-02-01 18:03:17 · 94 阅读 · 0 评论 -
71_简化路径
简化路径题目以 Unix 风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (…) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。更多信息请参阅:Linux / Unix中的绝对路径 vs 相对路径请注意,返回的规范路径必须始终以斜杠 / 开头,并且两个目录名之...原创 2020-01-30 20:50:38 · 141 阅读 · 0 评论 -
1024_删除字符串中的所有相邻重复项
视频拼接题目你将会获得一系列视频片段,这些片段来自于一项持续时长为T秒的体育赛事。这些片段可能有所重叠,也可能长度不一。视频片段clips[i]都用区间进行表示:开始于clips[i][0]并于clips[i][1]结束。我们甚至可以对这些片段自由地再剪辑,例如片段[0, 7]可以剪切成[0, 1] + [1, 3] + [3, 7]三部分。我们需要将这些片段进行再剪辑,并将剪辑后的内容拼...原创 2020-01-30 20:48:10 · 158 阅读 · 0 评论 -
1021_删除最外层的括号
删除最外层的括号题目有效括号字符串为空 ("")、"(" + A + “)” 或 A + B,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的连接。例如,"","()","(())()" 和 “(()(()))” 都是有效的括号字符串。如果有效字符串 S 非空,且不存在将其拆分为 S = A+B 的方法,我们称其为原语(primitive),其中 A 和 B 都是非空有效括号字符串。...原创 2020-01-30 20:47:16 · 78 阅读 · 0 评论 -
844_比较含退格的字符串
比较含退格的字符串题目给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。示例 1:输入:S = "ab#c", T = "ad#c"输出:true解释:S 和 T 都会变成 “ac”。示例 2:输入:S = "ab##", T = "c#d#"输出:true解释:S 和 T 都会变成 “”。示例 3:输...原创 2020-01-30 20:45:59 · 188 阅读 · 0 评论 -
682_棒球比赛
在这里插入代码片# 棒球比赛题目你现在是棒球比赛记录员。给定一个字符串列表,每个字符串可以是以下四种类型之一:整数(一轮的得分):直接表示您在本轮中获得的积分数。“+”(一轮的得分):表示本轮获得的得分是前两轮有效 回合得分的总和。“D”(一轮的得分):表示本轮获得的得分是前一轮有效 回合得分的两倍。“C”(一个操作,这不是一个回合的分数):表示您获得的最后一个有效 回合的分数是无...原创 2020-01-30 20:40:51 · 146 阅读 · 0 评论 -
20_有效的括号
Leetcode 20:有效的括号题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"...原创 2020-01-29 21:51:52 · 101 阅读 · 0 评论