当前位置: 首页 > news >正文

leedcode刷题(2)

各位朋友们,又是新的一天,不知道大家过得怎样?今天是我leedcode刷题系列的第二篇,那么废话不多说,直接进入我们今天的主题。

文章目录

  • 有效的括号
    • 题目要求
    • 用例输入
    • 做题思路
    • 代码实现
  • 环形链表
    • 题目要求
    • 用例输入
    • 做题思路
    • 代码实现
  • 环形链表 II
    • 题目要求
    • 用例输入
    • 做题思路
    • 代码实现

有效的括号

leedcode之有效的括号

题目要求

给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号。

用例输入

示例 1:
输入:s = “()”
输出:true

示例 2:
输入:s = “()[]{}”
输出:true

示例 3:
输入:s = “(]”
输出:false

做题思路

这道题的要求是需要我们判断给的括号是否合法,意思就是当我们遇到有括号的时候,我们需要判断左边最近的左括号是否跟这个右括号匹配。我们可以使用一种数据结构:栈来解决这个问题,因为栈是一端进,一端出,这一端被称为栈顶,先进后出,后进先出。所以我们把左括号都放在栈中,当遇到右括号时,我们就从栈顶取出左括号,看是否跟这个右括号匹配,匹配就继续下一个字符,不匹配就返回true。当这个字符串遍历完后,如果栈中不为空,说明有左括号未匹配,返回false,否则返回true。

代码实现

bool isValid(char * s){int len = strlen(s);//当字符串中没有或者只有一个字符时就直接返回falseif(len <= 1)return false;//字符个数为奇数就说明一定有一个未匹配所以就直接返回if(len%2 == 1)return false;//tail记录栈顶的位置int tail = 0;char* arr = (char*)malloc(len*sizeof(char));int i = 0;for(int i = 0; i<len; i++){if(s[i] == '(' || s[i] == '[' || s[i] == '{'){arr[tail++] = s[i];}else{if(tail == 0)return false;if(s[i] == ')'){if(arr[tail-1] != '(')return false;}else if(s[i] == ']'){if(arr[tail-1] != '['){return false;}}else{if(arr[tail-1] != '{'){return false;}}tail--;}}if(tail == 0)return true;return false;
}

在这里插入图片描述

环形链表

leedcode之环形链表

题目要求

给你一个链表的头节点 head ,判断链表中是否有环。

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。

如果链表中存在环 ,则返回 true 。 否则,返回 false 。

用例输入

示例 1:
在这里插入图片描述

输入:head = [3,2,0,-4], pos = 1
输出:true
解释:链表中有一个环,其尾部连接到第二个节点。

示例 2:
在这里插入图片描述

输入:head = [1,2], pos = 0
输出:true
解释:链表中有一个环,其尾部连接到第一个节点。

示例 3:
在这里插入图片描述

输入:head = [1], pos = -1
输出:false
解释:链表中没有环。

做题思路

如果该链表是有环的,那么我们使用两个指针:快指针跟慢指针,慢指针一次走一个结点,快指针走一个结点,他们最终一定会相遇。

代码实现

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
bool hasCycle(struct ListNode *head) {struct ListNode* low = head;struct ListNode* fast = head;while(fast && fast->next){low = low->next;fast = fast->next->next;if(low == fast)return true;}return false;}

在这里插入图片描述

环形链表 II

leedcode之环形链表 ||

题目要求

给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。

不允许修改 链表。

用例输入

示例 1:

在这里插入图片描述

输入:head = [3,2,0,-4], pos = 1
输出:返回索引为 1 的链表节点
解释:链表中有一个环,其尾部连接到第二个节点。

示例 2:
在这里插入图片描述

输入:head = [1,2], pos = 0
输出:返回索引为 0 的链表节点
解释:链表中有一个环,其尾部连接到第一个节点。

示例 3:
在这里插入图片描述

输入:head = [1], pos = -1
输出:返回 null
解释:链表中没有环。

做题思路

我们这个题还得需要上面的判断是否是环形链表的知识,有一个结论:当快慢指针相遇的时候,让指针分别在链表的头结点跟相遇的结点开始走,每次走一个结点,他们最终会在环形链表的入口处相遇。

代码实现

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
struct ListNode *detectCycle(struct ListNode *head) {struct ListNode* slow = head;struct ListNode* fast = head;while(fast && fast->next){slow = slow->next;fast = fast->next->next;if(slow == fast){struct ListNode* meet = slow;while(head != meet){meet = meet->next;head = head->next;}return meet;}}return NULL;
}

在这里插入图片描述

相关文章:

leedcode刷题(2)

各位朋友们&#xff0c;又是新的一天&#xff0c;不知道大家过得怎样&#xff1f;今天是我leedcode刷题系列的第二篇&#xff0c;那么废话不多说&#xff0c;直接进入我们今天的主题。 文章目录有效的括号题目要求用例输入做题思路代码实现环形链表题目要求用例输入做题思路代码…...

0119 磁盘分区、挂载

1.Linux分区 1.Linux无论有几个分区&#xff0c;分给哪个目录使用&#xff0c;归根结底只有一个根目录&#xff0c;一个独立且唯一的文件结构&#xff0c;Linux中每个分区都是用来组成整个文件系统的一部分 2.Linux采用了一种叫“载入”的处理方法&#xff0c;它的整个文件系…...

【独家】华为OD机试 - 打折买水果(C 语言解题)

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本期题目:打折买水果 题目 有 m m m…...

python使用args,kwargs

使用*args, **kwargs 在Python中&#xff0c;*args和**kwargs分别用于在函数定义中处理可变数量的位置参数和关键字参数。这使得您可以在调用函数时传入任意数量的参数&#xff0c;而不需要在函数定义中为每个参数单独声明一个形参。 这里是它们的使用方法&#xff1a; *arg…...

20230408英语学习

Planting This Could Feed Millions and Lock Away Tons of Carbon 食用菌&#xff1a;新型蛋白质来源&#xff0c;还能固碳 The world hungers for more food while wildlife yearns for untouched habitats.So goes the conflict between our seemingly insatiable need for…...

ReplacingMergeTree

在 MergeTree 的基础上&#xff0c;添加了“处理重复数据”的功能&#xff0c;该引擎和MergeTree的不同之处在于它会删除具有相同(区内)排序⼀样的重复项。数据的去重只会在合并的过程中出现。合并会在未知的时间在后台进⾏(⼿动合并)&#xff0c;所以你⽆法预先作出计划。有⼀…...

Java核心技术知识点笔记—集合(二)

1、树集&#xff08;TreeSet&#xff09;&#xff1a;是一个有序集合&#xff08;sorted collection&#xff09;&#xff0c;与散列集类似&#xff0c;但比散列集有所改进。 &#xff08;1&#xff09;可以以任意顺序将元素插入到集合中&#xff1b; &#xff08;2&#xff…...

Sharepoint Online手工迁移方案 | 分享二

目录 前言 1.创建新的目标网站集合 2.备份旧网站集合的内容数据库 3.卸载旧网站集合...

MVC获取当前区域、控制器、Action

控制器中获取&#xff1a; 获取区域名称&#xff1a;RouteData.DataTokens["area"].ToString() 获取控制器名称&#xff1a;RouteData.Values["controller"].ToString() 获取Action名称&#xff1a;RouteData.Values["action"].ToString() 视…...

第十六章 脚手架文件介绍

react项目脚手架文件目录 public ---- 静态资源文件夹 |-------favicon.icon ------ 网站页签图标 |-------index.html -------- 主页面 |-------logo192.png ------- logo图 |-------logo512.png ------- logo图 |-------manifest.json ----- 应用加壳的配置文件 |-------rob…...

基于Clion开发(stm32移植FreeRTOS+LVGL)

嵌入式单片机开发中&#xff0c;通常使用 Keil IAR 或 芯片厂商提供的IDE&#xff0c;这类IDE界面风格还停留在十几年前XP风&#xff0c;代码编辑实在让人难受&#xff0c;所以很多时候笔者都是采用VSCode编辑&#xff0c;然后再用这类IDE下载调试使用&#xff0c;另外像keil 和…...

Python | 蓝桥杯进阶第三卷——动态规划

欢迎交流学习~~ 专栏&#xff1a; 蓝桥杯Python组刷题日寄 蓝桥杯进阶系列&#xff1a; &#x1f3c6; Python | 蓝桥杯进阶第一卷——字符串 &#x1f50e; Python | 蓝桥杯进阶第二卷——贪心 &#x1f49d; Python | 蓝桥杯进阶第三卷——动态规划 ✈️ Python | 蓝桥杯进阶…...

蓝桥杯31天真题冲刺|题解报告|第二十九天

大家好&#xff0c;我是snippet&#xff0c;今天是我们刷题的第二十九天&#xff0c;今天主打打比赛&#xff0c;牛客AcWing力扣&#xff0c;今天的牛客是真的有趣&#xff0c;下面是我今天AcWing周赛的题解 目录 一、热身计算 题目链接&#xff1a;4944. 热身计算 - AcWing题…...

[Rust GUI]fltk-rs的helloworld

1、安装VSCode 下载安装VSCode 安装VSCode扩展 rust-analyzer或rust-analyzer(CN) 2、安装Microsoft C 生成工具 访问微软官网下载生成工具&#xff0c;勾选使用 C 的桌面开发之后会自动勾选5个项目 取消勾选以下项目 用于 Windows 的 C CMake 工具 测试工具核心功能 - 生成…...

蓝桥杯真题05

重新排序 问题描述 给定一个数组 A 和一些查询 Li,Ri 求数组中第 Li 至第 Ri个元素之和。 小蓝觉得这个问题很无聊, 于是他想重新排列一下数组, 使得最终每个查询结果的和尽可能地大。小蓝想知道相比原数组, 所有查询结果的总和最多可以增加多少? 输入格式 输入第一行包含…...

PMP那些事儿,备考小白看过来

一、PMP是什么&#xff1f; PMP指的是项目管理专业人士资格认证。它是由美国项目管理协会(Project Management Institute(PMI)发起的&#xff0c;严格评估项目管理人员知识技能是否具有高品质的资格认证考试。 其目的是为了给项目管理人员提供统一的行业标准。目前&#xff0…...

【数据分析实战】基于python对酒店预订需求进行分析

文章目录&#x1f4da;引言&#x1f4d6;数据加载以及基本观察&#x1f4d1;缺失值观察及处理&#x1f516;缺失值观察以及可视化&#x1f516;缺失值处理&#x1f4d6;用户数据探索&#x1f4d1;什么时间预定酒店将会更经济实惠&#xff1f;&#x1f4d1;哪个月份的酒店预订是…...

【新2023Q2模拟题JAVA】华为OD机试 - 数组的中心位置

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本篇题解:数组的中心位置 题目 给你一…...

Vue的props组件详解

const props defineProps({name: String, }); String 是在 defineProps() 函数中用来声明 name prop 的类型&#xff0c;表示 name 必须是字符串类型。如果父组件没有传入 name 或传入的 name 不是字符串类型&#xff0c;那么就会产生类型验证错误。 defineProps() 函数支持…...

抽烟行为识别预警系统 yolov5

抽烟行为识别预警系统基于yolov5网络模型智能分析技术&#xff0c;抽烟行为识别预警算法通过监测现场人员抽烟行为自动存档进行报警提示。我们选择当下YOLO卷积神经网络YOLOv5来进行抽烟识别检测。6月9日&#xff0c;Ultralytics公司开源了YOLOv5&#xff0c;离上一次YOLOv4发布…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

git: early EOF

macOS报错&#xff1a; Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...

OCR MLLM Evaluation

为什么需要评测体系&#xff1f;——背景与矛盾 ​​ 能干的事&#xff1a;​​ 看清楚发票、身份证上的字&#xff08;准确率>90%&#xff09;&#xff0c;速度飞快&#xff08;眨眼间完成&#xff09;。​​干不了的事&#xff1a;​​ 碰到复杂表格&#xff08;合并单元…...

goreplay

1.github地址 https://github.com/buger/goreplay 2.简单介绍 GoReplay 是一个开源的网络监控工具&#xff0c;可以记录用户的实时流量并将其用于镜像、负载测试、监控和详细分析。 3.出现背景 随着应用程序的增长&#xff0c;测试它所需的工作量也会呈指数级增长。GoRepl…...

GB/T 43887-2024 核级柔性石墨板材检测

核级柔性石墨板材是指以可膨胀石墨为原料、未经改性和增强、用于核工业的核级柔性石墨板材。 GB/T 43887-2024核级柔性石墨板材检测检测指标&#xff1a; 测试项目 测试标准 外观 GB/T 43887 尺寸偏差 GB/T 43887 化学成分 GB/T 43887 密度偏差 GB/T 43887 拉伸强度…...

c++算法学习3——深度优先搜索

一、深度优先搜索的核心概念 DFS算法是一种通过递归或栈实现的"一条路走到底"的搜索策略&#xff0c;其核心思想是&#xff1a; 深度优先&#xff1a;从起点出发&#xff0c;选择一个方向探索到底&#xff0c;直到无路可走 回溯机制&#xff1a;遇到死路时返回最近…...

【Docker 02】Docker 安装

&#x1f308; 一、各版本的平台支持情况 ⭐ 1. Server 版本 Server 版本的 Docker 就只有个命令行&#xff0c;没有界面。 Platformx86_64 / amd64arm64 / aarch64arm(32 - bit)s390xCentOs√√Debian√√√Fedora√√Raspbian√RHEL√SLES√Ubuntu√√√√Binaries√√√ …...