当前位置: 首页 > article >正文

【LeetCode】622、设计循环队列

【LeetCode】622、设计循环队列

文章目录

  • 一、数组实现循环队列
    • 1.1 队列
  • 二、多语言解法


一、数组实现循环队列

1.1 队列

注意:题目要求了 Front() 和 Rear(),当 IsEmpty() 时返回 -1

// go
type MyCircularQueue struct {
    l int
    r int
    len int
    cap int
    arr []int
}


func Constructor(k int) MyCircularQueue {
    return MyCircularQueue {
        l: 0,
        r: 0,
        len: 0,
        cap: k,
        arr: make([]int, k),
    }
}


func (this *MyCircularQueue) EnQueue(value int) bool {
    if this.len == this.cap {
        return false
    }
    this.len++
    this.arr[this.r]=value
    this.r++
    if this.r == this.cap {
        this.r = 0
    }
    return true
}


func (this *MyCircularQueue) DeQueue() bool {
    if this.len == 0 {
        return false
    }
    this.len--
    this.l++
    if this.l == this.cap {
        this.l = 0
    }
    return true
}


func (this *MyCircularQueue) Front() int {
    if this.IsEmpty() {
        return -1
    }
    return this.arr[this.l]
}


func (this *MyCircularQueue) Rear() int {
    if this.IsEmpty() {
        return -1
    }
    i := this.r-1
    if i == -1 {
        i = this.cap-1
    }
    return this.arr[i]
}


func (this *MyCircularQueue) IsEmpty() bool {
    return this.len == 0
}


func (this *MyCircularQueue) IsFull() bool {
    return this.len == this.cap
}


/**
 * Your MyCircularQueue object will be instantiated and called as such:
 * obj := Constructor(k);
 * param_1 := obj.EnQueue(value);
 * param_2 := obj.DeQueue();
 * param_3 := obj.Front();
 * param_4 := obj.Rear();
 * param_5 := obj.IsEmpty();
 * param_6 := obj.IsFull();
 */

二、多语言解法

C p p / G o / P y t h o n / R u s t / J s / T s Cpp/Go/Python/Rust/Js/Ts Cpp/Go/Python/Rust/Js/Ts

// cpp
// go 同上
# python
// rust
// js
// ts

http://www.kler.cn/a/593373.html

相关文章:

  • 软考程序员考试知识点汇总
  • Java爬虫抓取B站视频信息
  • C#实现的一个简单的软件保护方案
  • Unity框架集合(持续更新)
  • 【最后203篇系列】016 Q201架构思考
  • 移动端高效3D场景重建技术突破:从2D图像到语义化空间理解的范式迁移
  • 私有云大数据部署:从开发到生产(Docker、K8s、HDFS/Flink on K8s)
  • 数学——A. K-divisible Sum + D. Exam in MAC
  • Redis项目:秒杀业务
  • mysql与redis的日志策略
  • 汇能感知高品质的多光谱相机VSC02UA
  • 如何使用MySQL快速定位慢SQL问题?企业级开发中常见业务场景中实际发生的例子,涉及分页查询问题。(二)
  • HTML中required与aria required区别
  • 数字孪生的建模师blender和maya你更喜欢用哪个?
  • 【初学者】算法的学科体系是怎样的?请分章节介绍一下?
  • 计算机四级 - 数据库原理 - 第8章「分布式、对象-关系、NOSQL数据库」
  • 【QT:QT事件】
  • RabbitMQ可靠性进制
  • 汽车安全确认等级-中国等保
  • 【Go语言圣经3.6】