labuladong日常刷题-双指针 | LeetCode 83删除排序链表中的重复元素 5最长回文子串

双指针操作链表与字符串

LeetCode 83 删除排序链表中的重复元素 2023.12.28

  • 题目链接
  • labuladong讲解[链接]
    在这里插入图片描述
ListNode* deleteDuplicates(ListNode* head) {/*暴力求解ListNode* cur = new ListNode();ListNode* prenode = cur;cur->next = head;cur = cur->next;while(cur && cur->next){if(cur->val == cur->next->val){if(cur->next->next)cur->next = cur->next->next;elsecur->next = NULL;}elsecur = cur->next;}return prenode->next;*///双指针求解//左右指针初始化均指向头节点,用右指针来遍历,左指针来存储ListNode* left = head;ListNode* right = head;//当右指针且右指针的next指针不为空时while(right && right->next){//如果右指针与右指针的next节点值相同,//则如果右指针next节点的next节点存在时,左指针的next节点=右指针next节点的next节点,然后继续遍历//否则如果右指针next节点的next节点不存在时,说明走到头了,则给左指针的next节点指向NULLif(right->val == right->next->val){if(right->next->next)left->next = right->next->next;elseleft->next = NULL;}//如果右指针与右指针的next节点值不相同,那么左右指针都继续遍历//实际上,左右指针都是保持同步的else{right = right->next;left = left->next;}}//返回头指针return head;
}

LeetCode 5 最长回文子串 2023.12.28

  • 题目链接
  • labuladong讲解[链接]
    在这里插入图片描述
class Solution {public://求s字符串中的回文串,以l,r为中间两值的(奇数个字符时l=r为最中间的字符)string Palindrome(string s, int l, int r){//当左侧索引>=0,右侧索引<s.size()且s[l]=s[r]时//l--;r++;最终退出时说明s[l+1, r-1]为回文串while(l >= 0 && r < s.size() && s[l] == s[r]){l--;r++;}//返回s[l+1, r-1]回文串return s.substr(l+1, r-l-1);}string longestPalindrome(string s) {/*暴力求解string longstr;for(int i = 0; i < s.size(); i++){for(int j = i; j < s.size(); j++){int sym = 0;for(int k = i; k <= (i+j)/2; k++){if(s[k] != s[j-(k-i)]){sym = 1;break;}   }if(sym == 0 && j-i+1>longstr.size())longstr = s.substr(i, j-i+1);}}   return longstr;*///双指针求解//定义longstr变量存储遍历得到的最长回文串string longstr;//遍历每个以(i,i)、(i, i+1)为中心的s字符串的;将最长回文串存到longstr中for(int i = 0; i < s.size(); i++){string s1 = Palindrome(s, i, i);string s2 = Palindrome(s, i, i+1);longstr = longstr.size() < s1.size() ? s1 : longstr;longstr = longstr.size() < s2.size() ? s2 : longstr;}return longstr;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/583334.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

web自动化(4)——POM设计重构

1. 什么是POM Page Object Model 是ui自动化测试中常见的封装方式。 原理&#xff1a;将页面封装为PO对象&#xff0c;然后通过面向对象的方式实现UI自动化 2. 封装原则 PO无需包含全部UI元素PO应当验证元素PO不应该包含断言PO不应该暴露元素 3. 怎么进行POM封装 面向对象…

2.5 C语言之类型转换

2.5 C语言之类型转换 一、类型转换 一、类型转换 当一个运算符的几个操作数类型不同时&#xff0c;就需要通过一些规则把它们转换为某种共同的类型。 一般来说&#xff0c;自动转换是指把“比较窄的”的操作数转换为“比较宽的”的操作数&#xff0c;并且不丢失信息的转换。例…

架构设计系列 5:常见架构介绍

前面讲了架构是什么&#xff0c;架构的发展史&#xff0c;架构设计的基础理论&#xff0c;这次针对常见架构设计风格进行介绍和分析。 一、MVC&#xff1a;三层架构经典 经典的 MVC 架构&#xff08;Model-View-Controller&#xff09;架构是软件系统架构设计中的经典&#xf…

高阶组件和高阶函数是什么

高阶组件和高阶函数都是在函数式编程中常见的概念。 高阶组件&#xff08;Higher-Order Component, HOC&#xff09;是一种函数&#xff0c;接受一个组件作为参数&#xff0c;并返回一个新的组件。它可以用来增强现有的组件&#xff0c;给它添加额外的功能或属性。高阶组件在R…

数据结构与算法教程,数据结构C语言版教程!(第二部分、线性表详解:数据结构线性表10分钟入门)一

第二部分、线性表详解&#xff1a;数据结构线性表10分钟入门 线性表&#xff0c;数据结构中最简单的一种存储结构&#xff0c;专门用于存储逻辑关系为"一对一"的数据。 线性表&#xff0c;基于数据在实际物理空间中的存储状态&#xff0c;又可细分为顺序表&#xff…

【AI】人工智能爆发推进器之变分自动编码器

一、变分自动编码器&#xff08;VAE&#xff09; 变分自动编码器&#xff08;Variational Autoencoder&#xff0c;简称VAE&#xff09;是一种生成式模型&#xff0c;属于深度学习领域中的一种重要技术。它通过结合深度学习和概率图模型的思想&#xff0c;能够学习到数据分布的…

NFC物联网构建移动智能仓储系统解决方案

仓储管理作为企业研发生产活动的重要环节&#xff0c;正朝着标准化、信息化方向发展。高新作为典型的资产密集 技术密集型企业,原料样品为代表的资产数量巨大品种繁杂&#xff0c;对仓库管理的实时性及准确性要求较高。传统的人工作业模式和管理方法逐渐难以满足仓储管理对高效…

【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(4)-自制数据集及训练(使用makesense标注数据集)

如何制作和训练自己的数据集 看yolov5官网创建数据集1.搜索需要的图片2.创建标签标注数据集地址&#xff1a;放入图片后选择目标检测创建文档&#xff0c;每个标签写在单独的一行上传结果此处可以编辑类别把车框选选择类别即可导出数据 3.新建一个目录放数据写yaml文件 4. 测试…

【赠书第14期】AI短视频制作一本通:文本生成视频+图片生成视频+视频生成视频

文章目录 前言 1 前期准备 2 拍摄与录制 3 后期编辑 4 技巧与注意事项 5 推荐图书 6 粉丝福利 前言 随着智能技术的迅猛发展&#xff0c;AI 短视频制作成为了一种新兴而创新的表达方式&#xff0c;广泛应用于社交媒体、广告营销、教育培训等领域。本文将介绍 AI 短视频…

JavaScript介绍,特点及组成(详解)

✨前言✨   本章将介绍 JavaScript 的基本概念、编写方法&#xff0c;并带领大家编写第一个 avaScript 程序。 &#x1f352;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&#x1f601; &#x1f352;博主将持续更新学习记录收获&#xff0c;友友们有任何…

垃圾收集器与内存分配策略

内存分配和回收原则 对象优先在Eden区分配 大对象直接进入老年代 长期存活的对象进入老年代 什么是内存泄漏 不再使用的对象在系统中未被回收&#xff0c;内存泄漏的积累可能会导致内存溢出 自动垃圾回收与手动垃圾回收 自动垃圾回收&#xff1a;由虚拟机来自动回收对象…

什么是高并发系统?

1.1 什么是高并发&#xff1f; 高并发&#xff08;High Concurrency&#xff09;&#xff0c;通常是指通过设计保证系统能够同时处理很多请求。即在同一个时间点&#xff0c;有很多的请求同时访问同一个接口。高并发意味着大流量&#xff0c;需要运用技术手段去抵抗这种大流量…

用通俗易懂的方式讲解大模型:Prompt 提示词在开发中的使用

OpenAI 的 ChatGPT 是一种领先的人工智能模型&#xff0c;它以其出色的语言理解和生成能力&#xff0c;为我们提供了一种全新的与机器交流的方式。但不是每个问题都可以得到令人满意的答案&#xff0c;如果想得到你所要的回答就要构建好你的提示词 Prompt。本文将探讨 Prompt 提…

yolov5旋转目标检测-遥感图像检测-无人机旋转目标检测-附代码和原理

综述 为了解决旋转目标检测问题&#xff0c;研究者们提出了多种方法和算法。以下是一些常见的旋转目标检测方法&#xff1a; 基于滑动窗口的方法&#xff1a;在图像上以不同的尺度和角度滑动窗口&#xff0c;通过分类器判断窗口中是否存在目标。这种方法简单直观&#xff0c;…

Flutter 三点二:Dart 异步 async 和 await

async 和 await Future 链式调用 更清晰异步操作依赖关系比较复杂 可使用async awaitasync await 调用逻辑更清晰async await 异常处理 try{}catch(){} 即可async 修饰的方法 总是返回Future对象 不会阻塞主线程await 关键字只有在async修饰的方法内才有效都是把事件交给 Even…

数据可视化能为我们带来哪些好处?

在信息爆炸的时代&#xff0c;数据量呈指数级增长&#xff0c;企业和个人都面临着处理大量信息的挑战。在这个背景下&#xff0c;数据可视化崭露头角&#xff0c;成为解决复杂数据呈现和理解难题的得力工具。那么&#xff0c;数据可视化究竟能为我们带来哪些好处呢&#xff1f;…

SeaTunnel流处理同步MySQL数据至ClickHouse

ClickHouse是一种OLAP类型的列式数据库管理系统&#xff0c;ClickHouse完美的实现了OLAP和列式数据库的优势&#xff0c;因此在大数据量的分析处理应用中ClickHouse表现很优秀。 SeaTunnel是一个分布式、高性能、易扩展、用于海量数据同步和转化的数据集成平台。用户只需要配置…

YOLOv5改进 | 2023注意力篇 | BiFormer双层路由注意力机制(Bi-level Routing Attention)

一、本文介绍 BiFormer是一种结合了Bi-level Routing Attention的视觉Transformer模型&#xff0c;BiFormer模型的核心思想是引入了双层路由注意力机制。在BiFormer中&#xff0c;每个图像块都与一个位置路由器相关联。这些位置路由器根据特定的规则将图像块分配给上层和下层路…

网站提示“不安全”怎么解决

在互联网中&#xff0c;安全问题至关重要。访问某些网站时&#xff0c;可能会遇到“不安全”警告&#xff0c;通常是由于缺乏SSL证书。SSL证书是数字证书&#xff0c;用于确保互联网通信的安全和保密。 “不安全”问题通常源于缺少SSL证书。SSL通过加密通信&#xff0c;防止第三…

力扣labuladong——一刷day80

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣323.无向图中连通分量的数目二、力扣130. 被围绕的区域 前言 并查集&#xff08;Union-Find&#xff09;算法是一个专门针对「动态连通性」的算法&…