OJ题目下篇

news2025/1/15 5:43:39

我们今天继续来看链表的算法题目

我们先来看第一道题:

这是一道牛客网的题目:

链表的回文结构_牛客题霸_牛客网

我们来看这道题:首先我们要判断是不是回文结构,我们之前判断过数组的回文,这是比较好判断的,但是单链表只能单向的进行,不能反向。

这时候我们就有了一个思路:我们把他给改成反向的不就可以了;然后把他两边往中间靠拢:这样来进行比较:但是我们该怎样的把他给改成反向的呢?在哪里反向

思路一:我们可以使用快慢指针来找到我们的中间节点,然后我们让中间节点以后的结点的指针都变成反向的,我们可以设置三个指针来完成,完成以后我们就可以在他的两边开始进行遍历来比较

我们来看代码

这个就是我们实现完的代码。

其实我们还有一种思路,就是因为我们之前都是在数组里面判断回文结构的,数组来进行判断也是比较简单,所以这里我们就可以产生另一种思路,那就是我们可以创建一个数组,用来存储我们的链表里面的数据,储存完后,我们使用数组来进行判断,这样的话也可以;

我们来看第三道题:

160. 相交链表 - 力扣(LeetCode)

我们来看第三道题,这是一道力扣上面的题目:题目的要求是让你找链表的交点,但是我们在进行的时候,他的两个相交的链表长度可能是不一样的,那么我们就要先让他们位于同一起跑线上来进行:我们可以计算出长的链表比短的链表的长度有多长,然后让长链表先走,让他们在同一起跑线上,然后进行比较;

这道题比较简单

我们来看第四道题:

141. 环形链表 - 力扣(LeetCode)

我们的这个题目的要求是看你的这个链表有没有环,有的话返回true,没有的话返回false

这个题目我们的思路是快慢指针,我们使用快满指针来进行判断,当我们的两个指针进入到环里面以后,一个走得快,一个走的慢,但是他们一定是会相遇的;不管你的循环链表里面是奇数个还是偶数个,或者是说这两个指针相差的距离是奇数还是偶数,都是可以的,只是奇数的时候会套圈,但是还是可以遇上,全是偶数的时候,第一圈就可以遇见了。

我们来看我们的代码

在这个代码里面要注意,我们进入到while循环里面去以后,我们是要先进来就要改变fast和slow指针,不能进来就进行比较,进来的时候他们都是head;这时候不能进行比较;

我们来看第五道题:

142. 环形链表 II - 力扣(LeetCode)

这一题我们的要求是你首先要判断是不是环形链表,如果是的话就把他的成环的开始的结点返回,如果没有成环的话就返回NULL;

这一题会有一个新的东西:

我们先看第一个要求,判断环形链表的话,我们还是快慢指针来解决,没有什么问题,然后就是返回他的结点,这个的话我们就要看一个新的东西了:

我们的快慢指针结合的位置到我们的第一个开始循环的位置,和我们的第一个有效的结点到我们的开始循环的结点的距离是一样的;

我们就可以通过这个来实现我们的代码:

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

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

相关文章

25/1/14 算法笔记<强化学习> CBR加强化学习

CBR,基于案例的推理,它是一种基于过去的实际经验或经历的推理,他可以根据过往的案例找到与当前案例最相关的案例,然后对该案例做改动来解决当前的问题。 CBR的过程 CBR可以看作一个循环过程:相似按键检索-->案例重用-->案…

初识JAVA-面向对象的三大特征之多态

1. 重温面向对象 面向对象是一种解决问题的思想,它把计算机程序看作是各种对象组合起来的。每个对象都有自己的数据(属性)和行为(方法),主要依靠对象之间的交互来解决和实现问题。Java是一门纯面向对象的语…

Pytorch基础教程:从零实现手写数字分类

1.Pytorch简介 ‌PyTorch是一个开源的深度学习框架,由Facebook的人工智能研究院(FAIR)开发,并于2017年1月正式推出。‌ PyTorch以其灵活性和易用性著称,特别适合于深度学习模型的构建和训练。它基于Torch张量库开发&a…

高性能现代PHP全栈框架 Spiral

概述 Spiral Framework 诞生于现实世界的软件开发项目是一个现代 PHP 框架,旨在为更快、更清洁、更卓越的软件开发提供动力。 特性 高性能 由于其设计以及复杂精密的应用服务器,Spiral Framework框架在不影响代码质量以及与常用库的兼容性的情况下&a…

运维高级课作业三

源码编译安装httpd 2.4 首先下载好httpd-2.4.62.tar.bz2的安装包 将这个文件传入Linux中 将他解归档解入/usr/src/ rpm -e httpd --nodeps # 如果系统自带httpd这个软件要删除掉,两个软件不能同时运行 yum -y install apr apr-devel cyrus-sasl-devel expat-dev…

.Net8 Avalonia跨平台UI框架——<vlc:VideoView>控件播放海康监控、摄像机视频(Windows / Linux)

一、UI效果 二、新建用户控件:VideoViewControl.axaml 需引用:VideoLAN.LibVLC.Windows包 Linux平台需安装:VLC 和 LibVLC (sudo apt-get update、sudo apt-get install vlc libvlccore-dev libvlc-dev) .axaml 代码 注…

【HM-React】08. Layout模块

基本结构和样式reset 结构创建 实现步骤 打开 antd/Layout 布局组件文档,找到示例:顶部-侧边布局-通栏拷贝示例代码到我们的 Layout 页面中分析并调整页面布局 代码实现 pages/Layout/index.js import { Layout, Menu, Popconfirm } from antd impor…

Canvas简历编辑器-选中绘制与拖拽多选交互方案

Canvas简历编辑器-选中绘制与拖拽多选交互方案 在之前我们聊了聊如何基于Canvas与基本事件组合实现了轻量级DOM,并且在此基础上实现了如何进行管理事件以及多层级渲染的能力设计。那么此时我们就依然在轻量级DOM的基础上,关注于实现选中绘制与拖拽多选交…

C# OpenCV机器视觉:转速测量

在一个看似平常却又暗藏神秘能量的日子里,阿杰正在他那充满科技感的实验室里,对着一堆奇奇怪怪的仪器发呆。突然,手机铃声如一道凌厉的剑气划破寂静,原来是工厂的赵厂长打来的紧急电话:“阿杰啊,咱们工厂新…

vue2制作长方形容器,正方形网格散点图,并且等比缩放拖动

需求:有个长方形的容器,但是需要正方形的网格线,网格线是等比缩放的并且可以无线拖动的,并且添加自适应缩放和动态切换,工具是plotly.js,已完成功能如下 1.正方形网格 2.散点分组 3.自定义悬浮框的数据 4.根据窗口大小…

0基础跟德姆(dom)一起学AI 自然语言处理13-注意力机制介绍2

1 注意力机制规则 它需要三个指定的输入Q(query), K(key), V(value), 然后通过计算公式得到注意力的结果, 这个结果代表query在key和value作用下的注意力表示. 当输入的QKV时, 称作自注意力计算规则;当Q、K、V不相等时称为一般注意力计算规则 例子:seq2…

慧集通(DataLinkX)iPaaS集成平台-系统管理之UI库管理、流程模板

UI库管理 UI库管理分为平台级和自建两种,其中平台级就是慧集通平台自己内置的一些ui库所有客户均可调用,自建则是平台支持使用者自己根据规则自己新增对应的UI库。具体界面如下: 自建UI库新增界面: 注:平台级UI库不支…

通过一个算法的设计来了解栈的一些应用

目录 1.前言 2.步骤 3.代码实现 4.测试 5.运行结果 6.一些思考 7.一些应用示例 1.前言 掌握堆栈的基本原理 掌握堆栈的存储结构 掌握堆栈的进栈、出栈; 判断栈空的实现方法 掌握应用堆栈实现括号匹配的原理和实现方法; 熟悉python语言编程 熟练…

USB 驱动开发 --- Gadget 驱动框架梳理(一)

本文由 Linux 内核文档翻译与总结而来,个人学习笔记仅供参考。 Gadget 框架 在 USB 协议交互过程中,角色定义: the device driver is the master (or “client driver”) Linux 内核中称为 HCD(Host Controller Driver),负责与 …

字符串算法篇——字里乾坤,算法织梦,解构字符串的艺术(下)

文章目录 前言第一章:最长公共前缀1.1 题目链接:https://leetcode.cn/problems/longest-common-prefix/description/1.2 题目分析:1.3 思路讲解:1.4 代码实现: 第二章:最长回文子串2.1 题目链接&#xff1a…

计算机网络 笔记 数据链路层3(局域网,广域网,网桥,交换机)

局域网: LAN:在某一区域内由多台计算机互联成的计算机组,使用广播信道 特点: 覆盖范围有限:通常局限在几千米范围内,比如一栋办公楼、一个校园或一个工厂等相对较小的地理区域。 数据传输速率高:一般能达到 10Mbps…

istio-proxy oom问题排查步骤

1. 查看cluster数量 cluster数量太多会导致istio-proxy占用比较大的内存,此时需检查是否dr资源的host设置有配置为* 2. 查看链路数据采样率 若采样率设置过高,在压测时需要很大的内存来维护链路数据。可以调低采样率或增大istio-proxy内存。 检查iop中…

fast-crud select下拉框 实现多选功能及下拉框数据动态获取(通过接口获取)

教程 fast-crud select示例配置需求:需求比较复杂 1. 下拉框选项需要通过后端接口获取 2. 实现多选功能 由于这个前端框架使用逻辑比较复杂我也是第一次使用,所以只记录核心问题 环境:vue3,typescript,fast-crud ,elementPlus 效果 代码 // crud.tsx文件(/.ts也行 js应…

Apache JMeter 压力测试使用说明

文章目录 一、 安装步骤步骤一 下载相关的包步骤二 安装 Jmeter步骤三 设置 Jmeter 工具语言类型为中文 二、使用工具2.1 创建测试任务步骤一 创建线程组步骤二 创建 HTTP 请求 2.2 配置 HTTP 默认参数添加 HTTP消息头管理器HTTP请求默认值 2.3 添加 查看结果监听器2.4 查看结果…

计算机网络 (40)域名系统DNS

前言 计算机网络域名系统DNS(Domain Name System)是互联网的基础技术之一,它负责将人类可读的域名转换为计算机用来通信的数字IP地址。 一、基本概念 DNS的主要目的是将域名解析或翻译为IP地址,使得用户可以通过简单易记的域名来访…