leetcode刷题第十天——栈与队列Ⅱ
本次刷题顺序是按照卡尔的代码随想录中给出的顺序
1047. 删除字符串中的所有相邻重复项
char* removeDuplicates(char* s) {int len = strlen(s);char* tmp = malloc(sizeof(char) * (len + 1));int top = -1, idx = 0;while(idx < len) {if(top == -1) tmp[++top] = s[idx];else {if(tmp[top] == s[idx]) top--;else tmp[++top] = s[idx];}idx++;}tmp[++top] = '\0';return tmp;
}
150. 逆波兰表达式求值
bool isNumber(char* ch) {if(strlen(ch) > 1 || '0' <= ch[0] && ch[0] <= '9') return true;else return false;
}int evalRPN(char** tokens, int tokensSize) {int* st = malloc(sizeof(int)* tokensSize);int idx = 0, top = -1;while(idx < tokensSize) {char* ch = tokens[idx];if(!isNumber(ch)){switch(ch[0]) {case '+': st[top - 1] += st[top]; top--; break;case '-': st[top - 1] -= st[top]; top--; break;case '*': st[top - 1] *= st[top]; top--; break;case '/': st[top - 1] /= st[top]; top--; break;}}else {st[++top] = atoi(ch);}idx++;}return st[top];
}
347. 前 K 个高频元素
/*** Note: The returned array must be malloced, assume caller calls free().*/typedef struct {int key;int value;UT_hash_handle hh;
}hash;typedef struct {int H_key;int H_value;
}Heap;Heap* obj;
int Heap_size;bool cmp(Heap obj1, Heap obj2) {return obj1.H_value < obj2.H_value;
}void swap(Heap* obj1, Heap* obj2) {Heap tmp = *obj1;*obj1 = *obj2;*obj2 = tmp;
}Heap H_Top() {return obj[1];
}void H_Pop() {obj[1] = obj[Heap_size--];int idx = 1, t_idx;while((idx << 1) <= Heap_size) {//当前结点有子结点时,继续循环t_idx = idx << 1;if(t_idx < Heap_size && cmp(obj[t_idx + 1], obj[t_idx])) t_idx++;if(cmp(obj[idx], obj[t_idx])) return;swap(&obj[t_idx], &obj[idx]);idx = t_idx;}
}void H_Push(hash x) {obj[++Heap_size].H_key = x.key;obj[Heap_size].H_value = x.value;int idx = Heap_size, t_idx;while(idx > 1) {t_idx = idx >> 1;if(cmp(obj[t_idx], obj[idx])) return;swap(&obj[t_idx], &obj[idx]);idx = t_idx;}
}int* topKFrequent(int* nums, int numsSize, int k, int* returnSize) {hash* ha = NULL, * tmp1, * tmp2;int idx = 0;while(idx < numsSize) {//将数据信息存入哈希表HASH_FIND_INT(ha, &nums[idx], tmp1);if(tmp1 == NULL) {tmp1 = malloc(sizeof(hash));tmp1->key = nums[idx];tmp1->value = 1;HASH_ADD_INT(ha, key, tmp1);}else {tmp1->value++;}idx++;}obj = malloc(sizeof(Heap) * (k + 1));Heap_size = 0;Heap mid;HASH_ITER(hh, ha, tmp1, tmp2) {if (Heap_size == k) {mid = H_Top();if (mid.H_value < tmp1->value) {H_Pop();H_Push(*tmp1);}} else {H_Push(*tmp1);}}// 返回结果*returnSize = k;int* ret = malloc(sizeof(int) * k);for (int i = 0; i < k; i++) {mid = H_Top();H_Pop();ret[i] = mid.H_key;}return ret;
}
栈比较适合求解括号匹配、字符去重、逆波兰表达式
今天刷题,顺带复习了哈希表和小根堆的内容。小根堆和大根堆的思维框架是完全二叉树,所以使用数组实现小根堆时,有骚操作,在调整过程中,很妙,多看几遍H_Pop和H_Push的代码,好好体会
写这个系列的博客主要是给自己一个坚持刷题的理由,今天是第十天,感觉敲代码的流畅度有所提高,虽然思维上没有质变,但是相信坚持下去一定会有更大的收获,奥里给!
相关文章:
leetcode刷题第十天——栈与队列Ⅱ
本次刷题顺序是按照卡尔的代码随想录中给出的顺序 1047. 删除字符串中的所有相邻重复项 char* removeDuplicates(char* s) {int len strlen(s);char* tmp malloc(sizeof(char) * (len 1));int top -1, idx 0;while(idx < len) {if(top -1) tmp[top] s[idx];else {i…...
Vulnhub靶机随笔-Hackable II
Vulnhub靶机Hackable II详解 攻击机Kali IP:192.168.1.6 靶机 IP:未知 系统:未知 A.信息收集 扫描靶机存活性 确定IP地址 1.命令:arp-scan -l 扫描靶机开放端口及其服务版本信息 2.命令:nmap -A -p- -sV 靶机IP 3.靶机开放三个端口: 21ftp端口:存在anonymous匿…...
适配器模式 + 外观模式联合使用:新旧系统的平滑整合之道
🌟 引言:当系统演进遇到历史包袱 场景痛点: 假设企业需要将老旧的CRM系统与新的SaaS平台整合,面临: 旧系统接口:XML格式+同步调用新系统接口:JSON格式+异步调用需要统一提供简洁的RESTful API给前端若直接修改旧系统: // 旧系统核心类(无法修改) public class Leg…...
九.Spring Boot使用 ShardingSphere + MyBatis + Druid 进行分库分表
文章目录 前言一、引入依赖二、创建一个light-db_1备用数据库三、配置文件 application-dev.yml四、创建shardingsphere-config.yml完整项目结构 五、测试总结 前言 在现代化微服务架构中,随着数据量的不断增长,单一数据库已难以满足高可用性、扩展性和…...
【第2章:神经网络基础与实现——2.3 多层感知机(MLP)的构建与调优技巧】
在当今科技飞速发展的时代,人工智能早已不是一个陌生的词汇,它已经渗透到我们生活的方方面面,从智能语音助手到自动驾驶汽车,从图像识别到自然语言处理。而支撑这一切的核心技术之一,就是神经网络。作为机器学习领域的璀璨明星,神经网络已经在众多任务中取得了令人瞩目的…...
宠物企业宣传网站静态模板 – 前端静态页面开发实例
该宠物宣传企业站是一个基于前端技术构建的静态网站,旨在为宠物行业的企业提供一个简洁、现代的在线展示平台。整个网站采用HTML、CSS和JavaScript三种技术,确保了良好的用户体验和页面表现。 前端技术: HTML:HTML负责构建网站的…...
git如何下载指定版本
要使用Git下载指定版本,可以通过以下步骤进行操作: 1. 使用Git命令行下载指定版本: 1.1 首先,使用git clone命令克隆整个git库到本地。例如:git clone [库的URL]。这将下载最新的代码到本地。 1.2 进入克隆…...
【第4章:循环神经网络(RNN)与长短时记忆网络(LSTM)——4.2 LSTM的引入与解决长期依赖问题的方法】
在人工智能的璀璨星空中,深度学习模型犹如一颗颗耀眼的星辰,引领着技术的革新。而在处理序列数据的领域中,循环神经网络(RNN)无疑是那颗最为亮眼的星星。然而,即便是这样强大的模型,也面临着一些棘手的问题,其中最突出的便是长期依赖问题。今天,我们就来深入探讨一下长…...
IoTDB 集群节点 IP 改变,如何更新集群
问题 问题1:如果 IoTDB 配置的时候用的 IP,没有用 hostname,后面 IP 修改了,历史数据需要重新导吗? 问题2:如果现场运行 IoTDB 半年,电脑 IP 要改的话,半年的数据要导出来再导入么…...
C++ 设计模式-建造者模式
以下是一个完整的C建造者模式示例,包含产品类、建造者接口、具体建造者、指挥者以及测试代码: #include <iostream> #include <string> #include <memory>// 产品类:汽车 class Car { public:void setBody(const std::str…...
词袋模型和词嵌入模型区别和关联分析(词袋模型是否属于词嵌入模型)
词袋模型(Bag of Words, BoW)不属于词嵌入模型,它们是两种完全不同的文本表示方法。以下从多个维度对比二者的核心区别 1. 本质区别 特性词袋模型 (BoW)词嵌入模型 (Word Embedding)表示形式离散的稀疏向量(高维,维度…...
png、jpg、gif、webp的区别
png、jpg、gif、webp的区别 1.img的格式2.问题 1.img的格式 png 无损压缩,尺寸体积比jpg/jpeg大;适合做小图标jpg 采用了压缩算法,有一点失真,比png体积小;适合中大型图片gif 动态图webp 同时支持有损和无损压缩,相同质量的图片,webp具有更小的体积,但兼容性不太好(在某些浏览…...
el-input输入框样式修改
el-input输入框样式修改 目的:蓝色边框去掉、右下角黑色去掉(可能看不清楚) 之前我试过deep不行 最有效的办法就是就是在底部添加一下css文件 代码中针对input的type为textarea,对于非textarea,只需将下面的css样式中的textarea替换成input…...
什么是多光谱环形光源
多光谱环形光源是一种用于机器视觉、工业检测和科学研究的光源设备,能够提供多种波长的光,适用于不同材料和表面的检测需求。以下是其关键特点和应用: 关键特点 多光谱输出:可发射多种波长的光(如可见光、红外光、紫外…...
几款C#开发的入门书籍与视频教程
以下是几本适合C#初学者的书籍和一些优质的视频教程推荐,帮助你快速入门C#开发: 书籍推荐 1. 《C#入门经典》 • 作者:Karli Watson, Christian Nagel 等 • 特点:经典的C#入门书籍,内容全面,从基础语法到…...
日常问题-pnpm install执行没有node_modules生成
日常问题-pnpm install执行没有node_modules生成 1.问题2.解决方法 1.问题 执行pnpm i后,提示Scope: all 3 workspace projects Done in 503ms,而且没有node_modules生成。很奇怪 2.解决方法 确保根目录有 pnpm-workspace.yaml 文件: 把这…...
2025蓝桥杯JAVA编程题练习Day4
1.艺术与篮球 问题描述 小蓝出生在一个艺术与运动并重的家庭中。 妈妈是位书法家,她希望小蓝能通过练习书法,继承她的艺术天赋,并练就一手好字。爸爸是一名篮球教练,他希望小蓝能通过篮球锻炼身体,培养运动的激情和…...
C++-----------酒店客房管理系统
酒店客房管理系统 要求: 1.客房信息管理:包括客房的编号、类型、价格、状态等信息的录入和修改; 2.顾客信息管理:包括顾客的基本信息、预订信息等的管理; 3.客房预订:客户可以根据需要进行客房的预订,系统会自动判断客房的可用情况; 4.入住管理:客户入住…...
ORDER BY盲注攻击:原理、实现与防御(附Python多线程爆破脚本)
引言 在SQL注入攻击中,ORDER BY注入是一种容易被忽视但危害极大的漏洞类型。与传统的UNION或WHERE注入不同,ORDER BY参数通常无法直接返回查询结果,攻击者需要依赖**盲注(Blind SQLi)**技术逐字符提取数据。本文将结合…...
DeepSeek大模型响应速度优化策略
大模型响应速度的影响因素 响应速度受多方面因素影响,主要限制条件包括: (1)计算资源分配 每个query需要消耗约3.2TFLOPS算力集群使用英伟达H100 GPU,单卡理论峰值算力51TFLOPS实际部署中因动态负载均衡,一…...
人工智能在临床应用、药物研发以及患者护理等方面的最新研究进展|顶刊速递·25-02-12
小罗碎碎念 推文速览 第一篇文章提出 CRAFT-MD 框架评估临床大语言模型(LLMs)在医患互动任务中的表现,发现其存在局限性,并基于结果给出改进评估的建议。 第二篇文章全面阐述了 2019 年以来人工智能在小分子药物研发全流程&#…...
【物联网】电子电路基础知识
文章目录 一、基本元器件1. 电阻2. 电容3. 电感4. 二极管(1)符号(2)特性(3)实例分析5. 三极管(1)符号(2)开关特性(3)实例6. MOS管(产效应管)(1)符号(2)MOS管极性判定(3)MOS管作为开关(4)MOS管vs三极管7. 门电路(1)与门(2)或门(3)非门二、常用元器件…...
辛格迪客户案例 | 钥准医药科技GMP文件管理(DMS)项目
01 创新药企,崛起于启东 在我国医药行业蓬勃发展的浪潮中,钥准医药科技(启东)有限公司(以下简称“钥准医药”)犹如一颗冉冉升起的新星,闪耀着创新与活力的光芒。成立于2015年,钥准医…...
FastAPI 高并发与性能优化
FastAPI 高并发与性能优化 目录 🚀 高并发应用设计原则🧑💻 异步 I/O 优化 Web 服务响应速度⏳ 在 FastAPI 中优化异步任务执行顺序🔒 高并发中的共享资源与线程安全问题 1. 🚀 高并发应用设计原则 在构建高并发应…...
V93K测试机
爱德万V9300(又称V93K)是Advantest公司推出的高端可扩展SoC测试平台,在半导体测试领域具有标杆地位。以下为该设备的详细介绍: ### 一、核心性能与技术优势 1. **高速高精度测试能力** V9300支持高达112 Gbps PAM4信号&…...
如何在OCP部署Java应用程序
初次接触OpenShift Container Platform (OCP) 确实可能会感到有些陌生。不用担心,OCP的设计目标之一就是简化应用的容器化部署和管理。下面一步一步地为您讲解如何将您已经开发好的Java程序部署到OCP上。 一、基本概念 1、基本概念 首先,我们先来了解…...
Day65_20250213图论part9_dijkstra(堆优化版)|Bellman_ford算法精讲
Day65_20250213图论part9_dijkstra(堆优化版)|Bellman_ford算法精讲 dijkstra(堆优化版) 题目 https://www.programmercarl.com/kamacoder/0047.%E5%8F%82%E4%BC%9Adijkstra%E5%A0%86.html 小明参加科学大会 思路 思路 朴素版的dijkstra,时间复杂度为O(n^2)&am…...
w208基于spring boot物流管理系统设计与实现
🙊作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹赠送计算机毕业设计600个选题excel文…...
MySQL、MariaDB 和 TDSQL 的区别
MySQL、MariaDB 和 TDSQL 是三种不同的数据库管理系统,它们在设计理念、功能、性能和使用场景上有一些显著的区别。 以下是对这三者的详细比较和介绍。 1. MySQL 概述 类型:关系型数据库管理系统(RDBMS)。开发者:最…...
望远镜成像系统--科学评价光学镜头
望远镜是一种利用透镜或反射镜以及其他光学器件观测遥远物体的光学仪器。其原理是通过透镜的折射或反射镜的反射,将光线聚焦成像,再经过一个放大目镜进行观察。日常生活中的光学望远镜又称“天文望远镜”。1608年,荷兰的一位眼镜商汉斯利伯希…...
