【每日刷题】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…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...
[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...
