【leetcode】环形链表、最长公共前缀
题目:环形链表
解法一:哈希表
创建一个哈希表,遍历链表先判断哈希表中是否含有要放入哈希表中的节点,如果该节点已在哈希表中出现那么说明该链表是环形的;如果链表节点出现nullptr那么就退出循环,该链表是非环的。
时间复杂度:O(n)
空间复杂度:O(n)
class Solution {
public:bool hasCycle(ListNode *head) {unordered_set<ListNode*> hashtable;while(head){if(hashtable.count(head)) //先判断哈希表中是否有将要放入哈希表中的这个节点return true;hashtable.emplace(head);head = head->next;}return false;}
};
解法二:快慢指针
主要思路就是仿照龟兔赛跑,slow指针是龟,fast指针是兔(),如果是环形链表那么龟兔就会相遇(这个相遇肯定是兔套了龟若干圈.....)
时间复杂度:O(n)
空间复杂度:O(1)
class Solution {
public:bool hasCycle(ListNode *head) {if(nullptr == head)return false;ListNode* slow = head;ListNode* fast = head->next;while(fast){if(slow == fast){return true;}if(nullptr == fast->next){goto end;}else{fast = fast->next->next;}slow = slow->next;}end:return false;}
};
题目:最长公共前缀
解法一:遍历
对每个string字符串的字母按顺序一一判断,也就是简单遍历
时间复杂度:O(nm)
空间复杂度:O(1)
class Solution {
public:string longestCommonPrefix(vector<string>& strs) {for(int i = 0;i<strs[0].size();++i) //以第一个字符串作为基准,也可以先选出长度最小的字符串,选不选其实都一样{for(int j = 1;j<strs.size();++j){if((i>strs[j].size()-1) || (strs[0][i] != strs[j][i]))return strs[0].substr(0,i);}}return strs[0];}
};
解法二:两两判断
两个字符串进行比较得到一个string对象ret(刚开始将ret定义为第一个字符串),ret就是这两个字符串的公共前缀,以此类推
时间复杂度:O(nm)
空间复杂度:O(m)
class Solution {
public://更新retstring updateret(string& ret,const string& str ){string tmp;for(int i = 0;i<ret.size();++i){if(ret[i] != str[i] || i>str.size()-1 )//当字符不相同/字符串长度长于return tmp;tmp.push_back(ret[i]);}return tmp;}string longestCommonPrefix(vector<string>& strs) {//解法二:两两比较string ret = strs[0];for(int i = 1;i<strs.size();++i){ret = updateret(ret,strs[i]);}return ret;}
};
相关文章:

【leetcode】环形链表、最长公共前缀
题目:环形链表 解法一:哈希表 创建一个哈希表,遍历链表先判断哈希表中是否含有要放入哈希表中的节点,如果该节点已在哈希表中出现那么说明该链表是环形的;如果链表节点出现nullptr那么就退出循环,该链表是…...

C#开发记录如何建立虚拟串口,进行串口通信,以及通信模板
记录时间;2024年4月 记录如何开启虚拟串口以及进行基础串口通信。 建立虚拟串口 使用的软件是vspd,建立虚拟串口之后就可以将他们当成实际物理连接的两个串口进行通信。 之后使用我们之前给出的通信模板,建立一个稍微规矩一点的界面。 界面建立 其中…...

电源设计的艺术:从底层逻辑到工程实践
在电子工程的世界里,电源设计是核心中的核心。它不仅是电子设备的能量源泉,更是整个系统稳定运行的基石。随着科技的不断进步,电源设计的要求也越来越高,从效率、稳定性到体积、成本,每一个维度都是工程师们不断追求的…...

软媒市场新探索:软文媒体自助发布,开启自助发稿新篇章
在繁华喧嚣的软媒市场中,每一个声音都在竭力呼喊,每一个品牌都在奋力展现。而软文,作为一种温柔而坚韧的营销力量,正逐渐崭露头角。特别是软文媒体自助发布平台的出现,更是为企业提供了一个全新的、高效的自助发稿渠道。 软媒市场自助发布平台,正如其名,是一个让企业能够自主发…...

【Kubernetes】常见面试题汇总(二十七)
目录 77.假设公司希望在不同的云基础架构上运行各种工作负载,从裸机到公共云。公司将如何在不同界面的存在下实现这一目标? 78.什么是 Google 容器引擎? 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题。 题目 69-1…...

基于单片机巡迹避障智能小车系统
文章目录 前言资料获取设计介绍设计程序具体实现截图设计获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们…...

Python163邮箱发送:提升发送效率的技巧?
python163邮箱发送邮件教程?python怎么使用163邮箱? Python163邮箱发送作为一种自动化邮件发送方式,越来越受到开发者和企业的青睐。AokSend将探讨如何通过多种技巧提升Python163邮箱发送的效率,从而更好地满足用户需求。 Pytho…...

springboot中的异步任务
在springboot项目中可以通过EnableAsyncAsync的方式简化异步操作,下文使用springboot:3.2.1 源码分析 若一个bean中的公共方法上标注了Async,在系统启动时,会给这个类创建一个代理对象,并将该代理对象作为bean注册到spring容器中 …...

Linux学习笔记8 理解Ubuntu网络管理,做自己网络的主人
本文讲解了Ubuntu下网络由什么管理,介绍了临时ip和路由的设置方法,介绍了静态持久化网络配置的方法以及各网络管理软件之间的关系。 来看看Ubuntu网络管理。 序言 原本学习ubuntu网络管理就是为了检查nginx安装过程中使用wget获取压缩包为什么解析不出…...

理解线程的三大特性:原子性、可见性和有序性
在并发编程中,保护线程安全是一个重要课题。要实现线程安全,我们必须理解并掌握三个核心概念:原子性、可见性和有序性。下面将详细介绍这三个特性及其解决方案。 一、原子性 原子性是指一个操作要么全部完成,要么完全不执行。在多…...

英特尔®以太网网络适配器E810-CQDA1 / E810-CQDA2 网卡 规格书 e810 网卡 规格书 Intel100G E810 网卡 白皮书
英特尔以太网800系列网络适配器 英特尔以太网网络适配器E810-CQDA1 / CQDA2 在10到100Gbps的以太网速度下实现高效的工作负载优化性能 关键特性 •单、双端口QSFP28 •应用设备队列(ADQ) •PCI Express (PCIe) 4.0 x16 •动态设备个性化(DDP) •以太网端口配置工具(EPC…...

好用的idea方法分隔符插件
好用的idea方法分隔符插件...

通过 Xshell 无法连接到 Ubuntu
无法通过 Xshell 连接到 Ubuntu 服务器,通常与 SSH 服务、网络连接、主机防火墙设置问题有关。以下是排查并解决这个问题的步骤: 1. 确保 SSH 服务正在运行 在 Ubuntu 上,SSH 服务必须启动才能连接。如果你有虚拟机或物理机的访问权限&…...

Java面试篇基础部分-Synchronized关键字详解
Synchronized关键字用于对Java对象、方法、代码块等提供线程安全操作。Synchronized属于独占式的悲观锁机制,同时也是可重入锁。我们在使用Synchronized关键字的时候,可以保证同一时刻只有一个线程对该对象进行访问;也就是说它在同一个JVM中是线程安全的。 Java中的每个…...

数据结构之线性表——LeetCode:67. 二进制求和,27. 移除元素,26. 删除有序数组中的重复项
67. 二进制求和 题目描述 67. 二进制求和 给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。 运行代码(javaC) class Solution {public String addBinary(String a, String b) {StringBuilder ansnew StringBuilder();int ca0;for(i…...

SQL_HAVING小例子
例一 求众数的sql语句1: select income,count(*) as cnt from graduates group by income having count(*) > all(select count(*) from graduates group by income);这段SQL语句的作用是从一个名为graduates的表中找出income(收入)字段…...

Avalonia第三方UI库Semi.Avalonia用法详解
文章目录 简介一、安装Semi Avalonia二、基本项目结构三、使用基本控件1 按钮控件2 输入框控件3 选择框控件四、自定义样式和主题五、使用布局控件六、数据绑定七、事件处理八、使用图标和其他资源九、响应式设计十、交互与导航总结简介 Semi是一个基于Avalonia的UI库,旨在提供…...

宠物智能化听诊器的健康管理!
智能听诊器在宠物健康领域的应用正逐渐普及,它通过创新技术为宠物医疗保健带来革新。以下是智能听诊器如何影响宠物健康管理的概述: 数据分析与机器学习 智能听诊器利用深度学习算法,识别宠物心脏和呼吸模式,提供健康分析和诊断建…...

MyBatis-Plus 实体类注解
MyBatis-Plus 实体类注解详解 MyBatis-Plus 是 MyBatis 的增强版,旨在简化开发者的 CRUD 操作。它通过丰富的特性和注解,简化了数据库与 Java 实体类之间的映射。MyBatis-Plus 提供了一系列的实体类注解,帮助开发者更轻松地映射数据库表、字…...

如何写一个自动化Linux脚本去进行等保测试--引言
#我的师兄喜欢给我的休闲实习生活加活,说是让我在实习期间写一个自动化脚本去进行等保测试。呵呵哒。 怎么办呢,师兄的指令得完成,师兄说让我使用Python完成任务。 设想如下: 1、将Linux指令嵌入到python脚本中 2、调试跑通 …...

美团测开OC!
大家好,我是洋子,最近测试社区里面的一个25届同学参加秋招,已经拿到美团测开offer,今天来分享一下他的求职经历,文末附面经 他求职目前的进展如下: 互联网大厂:字节,阿里ÿ…...

HyperWorks的实体几何创建与六面体网格剖分
创建和编辑实体几何 在 HyperMesh 有限元前处理环境中,有许多操作是针对“实体几何”的,例如创建六面体网格。在创建实体网格的工作中,我们既可以使用闭合曲面创建实体网格,也可以使用完整的实体几何创建实体网格。与闭合曲面相比…...

项目实战:Ingress搭建Nginx+WP论坛+MariaDB
1. 网站架构 本次部署形式完全舍弃 Docker,将所有应用都置于Kubernetes,采用 Deployment 而非单 Pod 部署,稳定性得到升级。 2. 部署 MariaDB [rootk8s-master ~]# mkdir tdr [rootk8s-master ~]# cd tdr/ (1)定义 …...

UWA支持鸿蒙HarmonyOS NEXT
华为在开发者大会上,宣布了鸿蒙HarmonyOS NEXT将仅支持鸿蒙内核和鸿蒙系统的应用,不再兼容安卓应用,这意味着它将构建一个全新且完全独立的生态系统。 为此,UWA也将在最新版的UWA SDK v2.5.0中支持鸿蒙HarmonyOS NEXT,…...

【齐家网-注册/登录安全分析报告】
前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…...

MyBatis 基本概念
MyBatis 基本概念详解 MyBatis 是一个优秀的持久层框架,它支持定制 SQL、存储过程以及高级映射,用于将 Java 对象与数据库中的记录进行映射。作为 ORM(对象关系映射)框架,MyBatis 的主要优势在于灵活性高,…...

前端开发之装饰器模式
介绍 装饰器模式 是在不修改对象内部结构的情况下,动态地给对象添加功能的一种设计模式。在软件开发中,有时候我们需要为已有对象添加一些额外的行为,但不希望修改该对象的代码,装饰器模式可以很好的满足这一需求。 在TypeScrip…...

【STL】pair 与 map:基础、操作与应用
C 标准库中提供了许多用于处理数据结构的容器和工具。pair 和 map 是两个非常有用的工具,广泛应用于存储和处理关联数据。在本文中,我们将详细介绍 pair 与 map 的相关操作,并结合代码实例为读者提供清晰的理解。 pair:成对数据的…...

深度学习-图像处理篇4VGG网络
CNN感受野...

初级css+初级选择器
一、css基础样式 html: 标签 > 网页骨架 css: 美化这个网页的骨架 >样式去装饰网页 1. css 层叠样式表 (英文全称: Cascading Style Sheets) >修饰网页内容 比如: 文字大小 颜色 网页排版 高宽等等 2. css写在哪里?——行内样式 内部样式 外部样…...