【每日刷题】Day100

【每日刷题】Day100

🥕个人主页:开敲🍉

🔥所属专栏:每日刷题🍍

🌼文章目录🌼

1. 【模板】堆_牛客题霸_牛客网 (nowcoder.com)

2. 【模板】链表_牛客题霸_牛客网 (nowcoder.com)

3. 【模板】队列_牛客题霸_牛客网 (nowcoder.com)

1. 【模板】堆_牛客题霸_牛客网 (nowcoder.com)

//C++堆(大堆)的实现。

#include <iostream>

#include <vector>

using namespace std;

class Heap

{

public:

    Heap()

        :_size(0)

    {}

    void Swap(int& x,int& y)

    {

        int tmp = x;

        x = y;

        y = tmp;

    }


//向下调整

    void AdjustDown(int parents)

    {

        int child = parents*2+1;

        while(child<_size)

        {

            if(child+1<_size&&_arr[child+1]>_arr[child])

                child++;

            if(_arr[child]>_arr[parents])

                Swap(_arr[child],_arr[parents]);

            else

                break;

            parents = child;

            child = parents*2+1;

        }

    }

//向上调整

    void Adjustup(int child)

    {

        int parents = (child-1)/2;

        while(child>0)

        {

            if(_arr[child]>_arr[parents])

                Swap(_arr[child],_arr[parents]);

            else

                break;

            child = parents;

            parents = (child-1)/2;

        }

    }

//入堆

    void push(int val)

    {

        _arr.push_back(val);

        Adjustup(_size);

        _size++;

    }

//删除堆顶元素

    void pop()

    {

        if(_size==0)

            cout<<"empty"<<endl;

        else

        {

            cout<<_arr[0]<<endl;

            Swap(_arr[0],_arr[_size-1]);

            _arr.pop_back();

            _size--;

            AdjustDown(0);

        }

    }

//获取堆顶元素

    void top()

    {

        if(_size==0)

            cout<<"empty"<<endl;

        else

            cout<<_arr[0]<<endl;

    }


 

private:

    vector<int> _arr;

    size_t _size;

};

int main()

{

    Heap h;

    int n = 0;

    cin>>n;

    while(n--)

    {

        int data = 0;

        string s;

        cin>>s;

        if(s=="push")

        {

            cin>>data;

            h.push(data);

        }

        if(s=="top")

            h.top();

        if(s=="pop")

            h.pop();

    }

    return 0;

}

2. 【模板】链表_牛客题霸_牛客网 (nowcoder.com)

//C++链表模拟实现。

#include <iostream>

#include <list>

using namespace std;


 

class List

{

    class list_node

{

public:

    list_node(int y = -2147483648)

        :next(nullptr)

        ,val(y)

    {}

    int val;

    list_node* next;

};

public:

    List()

        :head(new list_node)

        ,_size(0)

    {}

//打印链表

    void printf()

    {

        if(_size)

        {

            list_node* pmove = head->next;

            while(pmove)

            {

                cout<<pmove->val<<' ';

                pmove = pmove->next;

            }

        }

        else

            cout<<"NULL";

    }

//在值为x的节点前插入值为y的节点

    void Insert(int x,int y)

    {

        list_node* pnext = head->next;

        list_node* prev = head;

        while(pnext&&pnext->val!=x)

        {

            prev = prev->next;

            pnext = pnext->next;

        }

        list_node* newnode = new list_node(y);

        prev->next = newnode;

        newnode->next = pnext;

        _size++;

    }

//删除值为x的节点

    void Delete(int x)

    {

        list_node* pmove = head->next;

        list_node* prev = head;

        while(pmove&&pmove->val!=x)

        {

            prev = prev->next;

            pmove = pmove->next;

        }

        if(pmove)

        {

            prev->next = pmove->next;

            _size--;

            delete pmove;

        }

    }

private:

    list_node* head;

    size_t _size;

};

int main()

{

    List l;

    int n = 0;

    cin>>n;

    while(n--)

    {

        int x,y;

        string s;

        cin>>s;

        if(s=="insert")

        {

            cin>>x>>y;

            l.Insert(x, y);

        }

        if(s=="delete")

        {

            cin>>x;

            l.Delete(x);

        }

    }

    l.printf();

    return 0;

}

3. 【模板】队列_牛客题霸_牛客网 (nowcoder.com)

//C++队列的实现。

#include <iostream>

#include <list>

#include <string>

using namespace std;

class Queue

{

    class queue_node

{

public:

    queue_node(int _val = -2147483648)

        :next(nullptr)

        ,val(_val)

    {}

    int val;

    queue_node* next;

};

public:

    Queue()

        :head(new queue_node)

        ,pmove(head)

        ,_size(0)

    {}

//获取队头元素

    void front()

    {

        if(_size)

            cout<<head->next->val<<endl;

        else

            cout<<"error"<<endl;

    }

//队尾插入元素

    void Push(int data)

    {

        queue_node* newnode = new queue_node(data);

        pmove->next = newnode;

        pmove = pmove->next;

        _size++;

    }

//队头删除元素

    void pop()

    {

        if(_size)

        {

            queue_node* pnext = head->next->next;

            queue_node* pcur = head->next;

            cout<<pcur->val<<endl;

            if(pcur==pmove)

                pmove = head;

            head->next = pnext;

            delete pcur;

            _size--;

        }

        else

            cout<<"error"<<endl;

    }

private:

    queue_node* head;

    queue_node* pmove;

    size_t _size;

};

int main()

{

    Queue q;

    int n;

    cin>>n;

    while(n--)

    {

        int data;

        string s;

        cin>>s;

        if(s=="push")

        {

            cin>>data;

            q.Push(data);

        }

        if(s=="pop")

            q.pop();

        if(s=="front")

            q.front();

    }

    return 0;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/401156.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

红酒与旅游攻略:旅行途中的风味之选

在旅行的道路上&#xff0c;我们总是渴望寻找那些能够触动心灵、留下深刻记忆的不同体验。而红酒&#xff0c;作为一种充满韵味和故事的饮品&#xff0c;无疑是旅行途中的风味之选。洒派红酒&#xff08;Bold & Generous&#xff09;&#xff0c;这款定制红酒&#xff0c;以…

【公式推导】Elucidating the Design Space of Diffusion-Based Generative Models 【论文精读】

Elucidating the Design Space of Diffusion-Based Generative Models 论文精读 关注B站可以观看更多实战教学视频&#xff1a;hallo128的个人空间 【更新中】EDM论文精读 论文链接 &#xff08;1&#xff09;论文&#xff1a;Elucidating the Design Space of Diffusion-Base…

连接投影仪/显示器只能扩展不能复制的解决方案

原文章&#xff1a;https://iknow.lenovo.com.cn/detail/121481 故障现象&#xff1a; 笔记本外接投影仪/显示器后&#xff0c;笔记本屏幕有显示&#xff0c;但投影仪却只有背景或没有显示&#xff1b; 原因分析&#xff1a; 此现象多发生在双显卡机型上&#xff0c;笔记本屏…

旺店通·企业奇门对接打通旺店通·企业奇门库存查询接口与创建盘点单接口

旺店通企业奇门对接打通旺店通企业奇门库存查询接口与创建盘点单接口 接入系统&#xff1a;旺店通企业奇门 慧策&#xff08;原旺店通&#xff09;是一家技术驱动型智能零售服务商&#xff0c;基于云计算PaaS、SaaS模式&#xff0c;以一体化智能零售解决方案&#xff0c;帮助零…

Python爬虫与数据分析:中国大学排名的深度挖掘

前言 &#x1f449; 小编已经为大家准备好了完整的代码和完整的Python学习资料&#xff0c;朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取【保证100%免费】 一、选题背景 高考作为中国学生生涯中最为重要的事&#xff0c;在高考之后&#xff0c;选择一所…

Vision Transformer学习笔记

论文链接&#xff1a;https://arxiv.org/abs/2010.11929 项目链接&#xff1a;https://github.com/google-research/vision_transformer 本文代码链接&#xff1a;https://gitcode.com/gh_mirrors/de/deep-learning-for-image-processing/tree/master/pytorch_classification/v…

大模型面试系列-大模型算法工程师的面试题目与解答技巧详细说明

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下大模型面试系列-大模型算法工程师的面试题目与解答技巧详细说明。 文章目录 大模型算法工程师面试题1. Llama 2 中使用的注意力机制是什么&#xff1f;描述一下查询分组注意力。2. LangChain 的结构详细描述一下。…

【go语言】go-webview2用法(持续更新)

文章目录 背景核心接口和方法扩展接口遗憾的是 背景 目前为止&#xff0c;已经有很多优秀的electron应用。但其特点也很明显&#xff1a;使用htmlcssjs构建的布局很精致&#xff0c;但是体积不容小觑&#xff08;最新版electron-egg打包出来的程序已经300MB&#xff09;。 vs…

014集——浮点数值类型——C#学习笔记

浮点类型的特征 C# 支持以下预定义浮点类型&#xff1a; double a 12.3; System.Double b 12.3; 每个浮点类型的默认值都为零&#xff0c;0。 每个浮点类型都有 MinValue 和 MaxValue 常量&#xff0c;提供该类型的最小值和最大有限值。 float and double 类型还提供可表示非…

开放大世界的 GpuTerrain + RVT

Unity 原生有一个 Tarrain&#xff08;地形&#xff09;系统&#xff0c;但可惜并不能直接用于开放世界&#xff0c;当然是因为其效率问题。现在开放世界主流是使用 GpuTerrain RVT &#xff0c;也是一个成熟技术了。在项目中实现这个技术的是公司的 TA&#xff08;我只做了接…

学习计算机网络(三)——IP地址

一、IP协议&#xff08;IPV4、IPV6&#xff09; 表示形式&#xff08;两种&#xff09;&#xff1a; 点分十进制、二进制 地址被点分为4个部分&#xff0c;每个部分8位&#xff0c;总共32位。 A、B、C类地址都是单播地址&#xff08;一对一通信&#xff09;&#xff0c;D类…

kubernetes k8s Daemonset 控制器 原理 讲解 配置

目录 1 DaemonSet控制器&#xff1a;概念、原理解读 1.1 DaemonSet概述 1.2 DaemonSet工作原理&#xff1a;如何管理Pod&#xff1f; 1.3 Daemonset典型的应用场景 1.4 DaemonSet 与 Deployment 的区别Deployment 部署的副本 Pod 会分布在各个 Node 上&#xff0c;每个…

Python轻量级 NoSQL 数据库之tinydb使用详解

概要 在现代应用开发中,使用数据库来存储和管理数据是非常常见的需求。对于简单的数据存储需求,关系型数据库可能显得过于复杂。TinyDB 是一个纯 Python 实现的轻量级 NoSQL 数据库,专为嵌入式场景设计,适用于小型项目、原型开发和教学等场景。本文将详细介绍 TinyDB 库,…

宠物行为:健康信号的早期预警

宠物&#xff0c;作为我们家庭中不可或缺的一部分&#xff0c;它们的健康同样需要我们细心呵护。宠物的行为变化&#xff0c;往往预示着健康问题的出现。而智能科技的融入&#xff0c;让这一过程变得更加科学和精准。 智能听诊器&#xff1a;宠物健康的守护者 智能听诊器&…

ISO 13485认证:医疗器械行业的质量护航者

在医疗器械行业&#xff0c;产品质量关乎生命。为确保每一件医疗器械的安全与可靠&#xff0c;ISO 13485认证作为全球公认的质量管理体系标准&#xff0c;正为无数企业提供强大的质量保障。对于企业来说&#xff0c;获得这一认证不仅是质量管理的提升&#xff0c;更是开拓全球市…

时间序列分析详解

时间序列分析详解 时间序列是按时间顺序排列的、随时间变化且相互关联的数据序列。 分析时间序 列的方法构成数据分析的一个重要领域&#xff0c;即时间序列分析。 时间序列根据所研究的依据不同&#xff0c;可有不同的分类。 按所研究的对象的多少分&#xff0c;有一元时间序…

Spring Cloud Alibaba微服务组件学习笔记

文章目录 一、版本说明版本关系项目创建 二、Nacos注册中心什么是NacosNacos注册中心核心功能Nacos Server部署&#xff08;windows版本&#xff09;Nacos Client服务Nacos Server配置项详解&#xff1a;Nacos集群搭建&#xff1a; 三、Ribbon负载均衡主流的负载方案&#xff1…

Spark MLlib 特征工程(上)

文章目录 Spark MLlib 特征工程(上)特征工程预处理 Encoding:StringIndexer特征构建:VectorAssembler特征选择:ChiSqSelector归一化:MinMaxScaler模型训练总结Spark MLlib 特征工程(上) 前面我们一起构建了一个简单的线性回归模型,来预测美国爱荷华州的房价。从模型效果来…

【C++语言】list的构造函数与迭代器

1. list的介绍及使用 1.1 list的介绍 list的文档介绍 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。 2. list的底层是双向链表结构&#xff0c;双向链表中每个元素存储在互不相关的独立节点中&#xff0c;在节点…

C语言实现多种快速排序

目录 1.概念 2.快速排序hoare版本 2.1基本思想 2.2解释相遇处的值为何一定小于key 2.3hoare版本快速排序的实现 3.快速排序挖坑法 3.1基本思想 3.2挖坑法快速排序的实现 4. 快速排序前后指针版本 4.1基本思想 4.2快速排序前后指针版本实现 5.快速排序非递归版本 …