【每日刷题】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…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
SpringAI实战:ChatModel智能对话全解
一、引言:Spring AI 与 Chat Model 的核心价值 🚀 在 Java 生态中集成大模型能力,Spring AI 提供了高效的解决方案 🤖。其中 Chat Model 作为核心交互组件,通过标准化接口简化了与大语言模型(LLM࿰…...
【UE5 C++】通过文件对话框获取选择文件的路径
目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 ,这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器,右键点击 .uproject 文件,选择 "Generate Visual Studio project files",重…...
