225. 用队列实现栈(先入后出)

var MyStack = function() {
this.data = []
}; MyStack.prototype.push = function(x) {
this.data.push(x)
}; MyStack.prototype.pop = function() {
return this.data.pop()
}; MyStack.prototype.top = function() {
return this.data[this.data.length - 1]
}; MyStack.prototype.empty = function() {
return !this.data.length
};

232. 用栈实现队列(先入先出)

var MyQueue = function() {
this.data = []
};
MyQueue.prototype.push = function(x) {
this.data.push(x)
};
MyQueue.prototype.pop = function() {
return this.data.shift()
};
MyQueue.prototype.peek = function() {
return this.data[0]
}; MyQueue.prototype.empty = function() {
return this.data.length == 0
};

303. 区域和检索 - 数组不可变

var NumArray = function(nums) {
this.data = nums
};
NumArray.prototype.sumRange = function(left, right) {
let sum = 0
for (let i = left; i <= right; i++) {
sum += Number(this.data[i])
}
return sum
};

703. 数据流中的第 K 大元素

var KthLargest = function(k, nums) {
this.k = k
this.data = nums
};
KthLargest.prototype.add = function(val) {
this.data.push(val)
let arr = this.data.sort((a, b) => b - a)
return arr[this.k - 1]
};

705. 设计哈希集合

var MyHashSet = function() {
this.data = []
}; MyHashSet.prototype.add = function(key) {
if (!this.contains(key)) {
this.data.push(key)
}
}; MyHashSet.prototype.remove = function(key) {
let index = this.data.indexOf(key)
if (index > -1) {
this.data.splice(index, 1)
}
};
MyHashSet.prototype.contains = function(key) {
let index = this.data.indexOf(key)
return index > -1
};

706. 设计哈希映射

var MyHashMap = function() {
this.data = {}
}; MyHashMap.prototype.put = function(key, value) {
this.data[key] = value
}; MyHashMap.prototype.get = function(key) {
return this.data[key] == undefined ? -1 : this.data[key]
}; MyHashMap.prototype.remove = function(key) {
delete this.data[key]
};var findDisappearedNumbers = function(nums) {
var res = []
for (let i = 1; i <= nums.length; i++) {
if (nums.indexOf(i) === -1) {
res.push(i)
}
}
return res
};

933. 最近的请求次数

var RecentCounter = function() {
this.data = []
};
RecentCounter.prototype.ping = function(t) {
let count = 0
this.data.push(t)
for (let i = this.data.length - 1; i >= 0; i--) {
if (this.data[i] >= (t - 3000)) {
count++
} else {
break
}
}
return count
};

1603. 设计停车系统

var ParkingSystem = function(big, medium, small) {
this.parkingCount = {
'1': big,
'2': medium,
'3': small,
}
};
ParkingSystem.prototype.addCar = function(carType) {
let park = this.parkingCount[carType]
if (park) {
this.parkingCount[carType]--
return true
}
return false
};

1656. 设计有序流

var OrderedStream = function(n) {
this.data = new Array(n + 1).fill(0)
this.ptr = 1
};
OrderedStream.prototype.insert = function(idKey, value) {
this.data[idKey] = value
if (idKey == this.ptr) {
let res = []
for (let i = this.ptr; i < this.data.length; i++) {
if (this.data[i]) {
res.push(this.data[i])
} else {
this.ptr = i
return res
}
}
return res
}
return []
};

剑指 Offer 09. 用两个栈实现队列

var CQueue = function() {
this.data = []
};
CQueue.prototype.appendTail = function(value) {
this.data.push(value)
};
CQueue.prototype.deleteHead = function() {
if (this.data.length == 0) return -1
return this.data.shift()
};

剑指 Offer 30. 包含min函数的栈

var MinStack = function() {
this.data = []
}; MinStack.prototype.push = function(x) {
this.data.push(x)
}; MinStack.prototype.pop = function() {
this.data.pop()
}; MinStack.prototype.top = function() {
return this.data[this.data.length - 1]
}; MinStack.prototype.min = function() {
return Math.min(...this.data)
};

剑指 Offer II 041. 滑动窗口的平均值

var MovingAverage = function(size) {
this.data = []
this.size = size
}; MovingAverage.prototype.next = function(val) {
this.data.push(val)
let limit = Math.min(this.size, this.data.length)
let num = 0
for (let i = 0; i < limit; i++) {
num += this.data[this.data.length - 1 - i]
}
return num / limit
};

面试题 03.06. 动物收容所

var AnimalShelf = function() {
this.animalList = []
this.numList = []
};
AnimalShelf.prototype.enqueue = function(animal) {
this.numList.push(animal[0])
this.animalList.push(animal[1])
};
AnimalShelf.prototype.dequeueAny = function() {
if (this.animalList.length > 0) {
let res = [this.numList[0], this.animalList[0]]
this.animalList.shift()
this.numList.shift()
return res
}
return [-1, -1]
};
AnimalShelf.prototype.dequeueDog = function() {
let index = this.animalList.indexOf(1)
if (index > -1) {
let res = [this.numList[index], 1]
this.animalList.splice(index, 1)
this.numList.splice(index, 1)
return res
}
return [-1, -1]
};
AnimalShelf.prototype.dequeueCat = function() {
let index = this.animalList.indexOf(0)
if (index > -1) {
let res = [this.numList[index], 0]
this.animalList.splice(index, 1)
this.numList.splice(index, 1)
return res
}
return [-1, -1]
};

leetcode简单(设计):[225, 232, 303, 703, 705, 706, 933, 1603, 1656, 09, 30, 041, 03.06]的更多相关文章

  1. 这样leetcode简单题都更完了

    这样leetcode简单题都更完了,作为水题王的我开始要更新leetcode中等题和难题了,有些挖了很久的坑也将在在这个阶段一一揭晓,接下来的算法性更强,我就要开始分专题更新题目,而不是再以我的A题顺 ...

  2. Java消息系统简单设计与实现

    前言:由于导师在我的毕设项目里加了消息系统(本来想水水就过的..),没办法...来稍微研究研究吧..简单简单... 需求分析 我的毕设是一个博客系统,类似于简书这样的,所以消息系统也类似,在用户的消息 ...

  3. 学生与部门管理app-产品功能与界面的简单设计

    学生与部门管理app-产品功能与界面的简单设计 1. 结对成员学号 我:********* 大佬:*******10 2. 需求分析(NABCD模型) 2.1 N-需求 各个部门在开学初占据学校青春广 ...

  4. C#网络编程TCP通信实例程序简单设计

    C#网络编程TCP通信实例程序简单设计 采用自带 TcpClient和TcpListener设计一个Tcp通信的例子 只实现了TCP通信 通信程序截图: 压力测试服务端截图: 俩个客户端链接服务端测试 ...

  5. Java秒杀简单设计二:数据库表和Dao层设计

    Java秒杀简单设计二:数据库表Dao层设计 上一篇中搭建springboot项目环境和设计数据库表  https://www.cnblogs.com/taiguyiba/p/9791431.html ...

  6. SpringBoot整合Shiro实现基于角色的权限访问控制(RBAC)系统简单设计从零搭建

    SpringBoot整合Shiro实现基于角色的权限访问控制(RBAC)系统简单设计从零搭建 技术栈 : SpringBoot + shiro + jpa + freemark ,因为篇幅原因,这里只 ...

  7. 3.NetDh框架之缓存操作类和二次开发模式简单设计(附源码和示例代码)

    前言 NetDh框架适用于C/S.B/S的服务端框架,可用于项目开发和学习.目前包含以下四个模块 1.数据库操作层封装Dapper,支持多种数据库类型.多库实例,简单强大: 此部分具体说明可参考博客: ...

  8. leetcode简单题6

    今天的华师 Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, fro ...

  9. LC滤波器简单设计法 - 一文读懂LC滤波器简单设计方法及原理介绍,LC值计算方法

    LC滤波器概述 LC滤波器也称为无源滤波器,是传统的谐波补偿装置.LC滤波器之所以称为无源滤波器,顾名思义,就是该装置不需要额外提供电源.LC滤波器一般是由滤波电容器.电抗器和电阻器适当组合而成,与谐 ...

  10. 【LeetCode】设计题 design(共38题)

    链接:https://leetcode.com/tag/design/ [146]LRU Cache [155]Min Stack [170]Two Sum III - Data structure ...

随机推荐

  1. zabbix第二篇

    常用命令 查看版本 [root@zabbix001 xx]# zabbix_server -V zabbix_server (Zabbix) 4.2.8 Revision cb5d5b10f4 28 ...

  2. 构建自定义镜像并优化dockerfile文件

    目录 一.系统环境 二.前言 三.镜像构建步骤 四.dockerfile文件常用指令 4.1 dockerfile文件常用指令 4.2 RUN.CMD.ENTRYPOINT的区别 五.构建centos ...

  3. springcloud整合geteway网关服务

    geteway网关 1. 什么是 API 网关(API Gateway)分布式服务架构.微服务架构与 API 网关在微服务架构里,服务的粒度被进一步细分,各个业务服务可以被独立的设计.开发.测试.部署 ...

  4. Django - 在后台上传文章封面图 - 并在前端页面展示

    需要用到 models.ImageField(), 它继承自 models.FileField(),  用ImageField的时候需要安装pillow pip install pillow -i h ...

  5. iOS技术管理思路

    iOS技术管理思路

  6. 规则引擎easyRules中组合规则的使用

    这两天想要做支付路由,要根据支付信息将支付请求转发到不同的支付渠道,可能要用到规则引擎,于是研究了一下开源的规则引擎产品.规则引擎核心知识与开源产品对比选型 ,这篇文章对规格引擎和开源产品有详细的介绍 ...

  7. MySQL学习笔记-索引

    索引 索引(index)是帮助MySQL高效获取数据的数据结构(有序).在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现 ...

  8. C#开源实用的工具类库,集成超过1000多种扩展方法

    前言 今天大姚给大家分享一个C#开源(MIT License).免费.实用且强大的工具类库,集成超过1000多种扩展方法增强 .NET Framework 和 .NET Core的使用效率:Z.Ext ...

  9. numpy基础--通用函数:快速的元素级数组函数

    以下代码的前提:import numpy as np 通用函数(即ufunc)是一种对narray中的数组执行元素级运算的函数.可以看作简单函数(接受一个或多个标量值,并产生一个或多个标量值)的矢量化 ...

  10. 战66 WIN11 亮度热键 快捷键无效

    型号:HP ZHAN 66 Pro A 14 G3. 用FN 调节音量是正常的,唯独亮度无效. 参考:怎样调节笔记本电脑屏幕亮度(惠普笔记本亮度调节快捷键失灵) | 说明书网 (shuomingshu ...