【每日刷题】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;
}
相关文章:
【每日刷题】Day100
【每日刷题】Day100 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 【模板】堆_牛客题霸_牛客网 (nowcoder.com) 2. 【模板】链表_牛客题霸_牛客网 (nowcoder.com) 3…...
网络协议九 应用层 HTTPS
一 什么是 HTTPS 二 什么是 SSL/TLS 协议 ,TLS 是 SSL 升级后的名字 三. TLS 协议 工作在那一层 四 。OpenSSL 是 SSL/TLS协议的开源实现。 五。重点 HTTPS 的通讯过程 六 TLS 1.2 的连接过程 1. client hello 是浏览器发送给服务器的第一条信息, 是客户…...
【ArrayList】JDK1.8源码详细注释 以及如何实现线程安全的链表
ArrayList(JDK8) ArrayList有四个内部类,成员内部类Itr,成员内部类ListItr,静态内部类SubList,ArrayListSpliterator(暂时用不到)Itr是Iterator的实现类,支持正向遍历,ArrayList的i…...
[python]rasterio运行代码警告proj_create_from_database: Cannot find proj.db
这个报错要分原因还有rasterio版本讨论,因此官方给出了十分具体回答 Frequently Asked Questions What does "RasterioIOError: file.ecw not recognized as a supported file format." mean? This exception is raised when none of rasterios format …...
ThinkPHP5.1.C+CmsEasy-SQL注入
目录 1、ThinkPHP 中存在的 SQL注入 漏洞( select 方法注入) 1.1环境配置 1.1.1将 composer.json 文件的 require 字段设置成如下: 1.1.2设置application/index/controller/Index.php 文件 1.1.3在 application/database.php 文件中配置…...
Python 绘图进阶之词云图:文本数据的可视化艺术
Python 绘图进阶之词云图:文本数据的可视化艺术 引言 在数据科学和自然语言处理领域,词云图(Word Cloud)是一种常用的可视化工具。它通过直观的图形展示文本数据中的高频词汇,使得我们能够快速抓住文本内容的核心主题…...
【Windows】Q-Dir(资源管理器)软件介绍
软件介绍 Q-Dir是一款免费的文件管理器软件,它可以让您更方便地浏览和管理计算机上的文件和文件夹。与Windows自带的资源管理器相比,Q-Dir具有更多的功能和选项。 安装教程 软件下载完成,解压软件。 点击Q-Dir.exe即可打开软件。 功能…...
什么是令牌桶算法?工作原理是什么?使用它有哪些优点和注意事项?
大家好,我是鸭鸭! 此答案节选自鸭鸭最近弄的面试刷题神器面试鸭 ,更多大厂常问面试题,可以点击下面的小程序进行阅读哈! 目前这个面试刷题小程序刚出,有网页和小程序双端可以使用! 回归面试题…...
C++-类与对象(中上篇)
一、目标 1. 类的 6 个默认成员函数 2. 构造函数 3. 析构函数 二、对目标的介绍 1. 类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生…...
链表 206.反转链表
一般方法 不需要一个个来回换,只需要改变链表的指向,即可完成 一个链表的头节点,也代表了整个链表 class Solution {public ListNode reverseList(ListNode head) {ListNode temp;ListNode cur head;ListNode pre null;while(cur ! null…...
Ubuntu18.04 配置EtherCAT主站IGH SOEM
IGH IGH 是开源的EtherCAT 主站软件 一、安装依赖 sudo apt update sudo apt install build-essential linux-headers-$(uname -r) mercurial autoconf libtool 也不知道安装的完全不完全 uname -r 可以查看内核,我安装的ubuntu18.04的内核版本是 5.4.0-84-gen…...
航空航天构型管理
构型管理(CM)被定义为在产品的生命周期中应用的SE技术和管理规程。CM的五个原则是:CM计划与执行、配置识别、配置变更和差异控制、配置状态核算和配置验证。 广义上的构型管理规划和管理是有效实施配置管理的关键。特别是在不同项目之间的差异中,构型管理…...
Visual Studio Code 安装与 C/C++ 语言运行总结
大家好,我是程序员小羊! 前言: Visual Studio Code(简称 VS Code)是由微软开发的一款轻量级、强大的代码编辑器,支持多种编程语言和开发框架。由于其丰富的插件生态系统和灵活的配置选项,VS…...
Science Robotics 受鳞片启发的可编程机器人结构,可同时进行形状变形和刚度变化
一、前言速览 生物有机体通常凭借复杂的结构表现出显著的多功能性,例如章鱼具有可以同时改变形状和刚度的能力。现有的仿生软体机器人要想实现这样的能力,往往需要繁琐的结构和复杂的控制系统。为此,来自新加坡南洋理工大学的研究人员从覆盖…...
SpringBoot 自定义 Starter 实现
一、定义,什么是Starter SpringBoot Starter 是”一站式服务(one-stop service)“的依赖 Jar 包: 包含 Spring 以及相关技术(比如Redis)的所有依赖提供了自动配置的功能,开箱即用提供了良好的…...
「Spring MVC」Session、Cookie
🎇个人主页:Ice_Sugar_7 🎇所属专栏:JavaEE 🎇欢迎点赞收藏加关注哦! Spring MVC 🍉Session & Cookie🍌联系与区别 🍉获取 Cookie🍉存储 & 获取 Sess…...
Java虚拟机:垃圾回收器
大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 037 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进一步完善自己对整个 Java 技术体系来充实自…...
ES6-ES13学习笔记
初识ES6 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。 1997年:EC…...
【Qt开发】QtCharts图表——在ui上添加QChartView控件并进行绘图配置
【Qt开发】QtCharts图表——在ui上添加QChartView控件并进行绘图配置 文章目录 控件安装和模块导入在ui上添加QChartView控件QChartView图表配置附录:C语言到C的入门知识点(主要适用于C语言精通到Qt的C开发入门)C语言与C的不同C中写C语言代码…...
Android14 屏幕录制(屏幕投影)和音频播放采集
Android 5开始支持屏幕采集, Android 10支持音频播放采集,不过Android 14用前台服务做屏幕录制时要增加一些处理. 1. app manifest 需要增加: <manifest><uses-permission android:name"android.permission.FOREGROUND_SERVICE" /><uses…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...
