cpp-设计模式之单例模式
设计模式之单例模式 单例模式简介 单例模式是最简单的模式之一,其目的为保证一个类只有一个实例,并提供一个访问它的全局节点. 懒汉式(Lazy Singleton) 懒汉式是最基本的单例模式,单例实例会在第一次被使用时才进行初始化,称之为延迟初始化 #include <iostream> class Singleton{ public: static S...
设计模式之单例模式 单例模式简介 单例模式是最简单的模式之一,其目的为保证一个类只有一个实例,并提供一个访问它的全局节点. 懒汉式(Lazy Singleton) 懒汉式是最基本的单例模式,单例实例会在第一次被使用时才进行初始化,称之为延迟初始化 #include <iostream> class Singleton{ public: static S...
工厂模式 工厂模式介绍 工厂模式属于创建型模式,大致可以分为三类,简单工厂模式、工厂方法模式、抽象工厂模式。听上去差不多,都是工厂模式。下面一个个介绍,首先介绍简单工厂模式,它的主要特点是需要在工厂类中做判断,从而创造相应的产品。当增加新的产品时,就需要修改工厂类。有点抽象,举个例子就明白了。有一家生产处理器核的厂家,它只有一个工厂,能够生产两种型号的处理器核。客户需要什么样的处理器核,...
思维导图笔记如下:
两数之和 II-输入有序数组 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。 说明: 返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素. 示例 输入:...
前言 《白日梦想家》是由本·斯蒂勒(Ben Stiller)主演的一部奇幻剧情片,英文名为 The Secret Life of Walter Mitty。电影讲述了主角 Walter Mitty 是一个爱做白日梦的杂志社底片资产管理部经理。他经常会进入一种“出神”的状态,然后幻想自己做了很了不起的事情,但回到现实,自己并没有想象中那么富有传奇色彩。某天,当冒险摄影师发来当作最后一刊杂志的...
假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。 注意: 你可以假设胃口值为正...
Leetcode 215 数组中的第 K 个最大的元素 直接排序后返回 k 即可。 class Solution { public: int findKthLargest(vector<int>& nums, int k) { std::sort(nums.begin(),nums.end()); return nums[nums.size()-k]; } };
LeetCode 155 最小栈 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) – 将元素 x 推入栈中。 pop() – 删除栈顶的元素。 top() – 获取栈顶元素。 getMin() – 检索栈中的最小元素。 示例: MinStack minStack = new MinStack(); minStack.pu...
LeetCode232 用栈实现队列 使用栈实现队列的下列操作: push(x) – 将一个元素放入队列的尾部。 pop() – 从队列首部移除元素。 peek() – 返回队列首部的元素。 empty() – 返回队列是否为空。 示例: MyQueue queue = new MyQueue(); queue.push(1); queue.push(2); queue....
使用队列实现栈的下列操作: push(x) – 元素 x 入栈 pop() – 移除栈顶元素 top() – 获取栈顶元素 empty() – 返回栈是否为空 注意: 你只能使用队列的基本操作– 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。 你所使用的语言也许不支持队列。 你可以使用 li...