力扣刷题(4)

news2024/9/24 17:12:42

正则表达式匹配

正则表达式匹配-力扣
在这里插入图片描述

思路来源:ithewei

  1. 若 *p 为空,*s 为空则匹配,*s 为非空则不匹配;
  2. 当 *s为非空时,*p == *s || *p == ‘.’ 时第一个字符匹配;
  3. 若 *(p+1) != ’ * '时,则递归判断剩下的是否匹配 first_match && isMatch(++s, ++p)
  4. 若 *(p+1) == ’ * ',则有两种情况匹配:
    • 匹配0个字符,s匹配剩下的,即isMatch(s, p+2)
    • 匹配1个字符,继续用p匹配剩下的s,即first_match && isMatch(++s, p)
bool isMatch(char* s, char* p) {
    if(!*p)
        return !*s;
    bool first_match = *s && (*s == *p || *p == '.');
    if(*(p+1) =='*')    
    {
        return isMatch(s,p+2) || (first_match && isMatch(++s,p));
    }
    else
    {
        return first_match && isMatch(++s,++p); 
    }
}

在这里插入图片描述

盛最多水的容器

盛最多水的容器-力扣
在这里插入图片描述
解法一:最容易想出的方法就是将每个位置都进行比较

int maxArea(int* height, int heightSize) {
     int* head=height;
     int* tail=height;
     int max=0;
     for(int i=0;i<heightSize-1;i++)
     {
        for(int j=i+1;j<heightSize;j++)
        {
            int min=*(head+i) > *(tail+j) ? *(tail+j):*(head+i);
            int tmp=min*(j-i);
            if(max < tmp)
                max=tmp;
        }
     }
     return max;
}

时间复杂度为O(n^2),无法通过,因此需要其他的方法

解法二:

int maxArea(int* height, int heightSize) {
     int* head=height;
     int* tail=height+heightSize-1;
     int max=0;
     while(head < tail)
     {
        int min=*(head) < *(tail) ? *(head) : *(tail);
        int tmp=min*(tail-head);
        if(max < tmp)
            max=tmp;
        *(head) < *(tail) ? head++:tail--;
     }
     return max;
}

该解法的时间复杂度为O(n),因此可以轻松的通过

在这里插入图片描述

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

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

相关文章

python开发VTK入门

首先用pip命令安装VTK的python库&#xff1b; 需要一些时间&#xff0c;安装完成如下&#xff1b; 基本示例代码&#xff0c; import vtkcube vtk.vtkCubeSource() cube.SetXLength(100.0) cube.SetYLength(200.0) cube.SetZLength(300.0)mapper vtk.vtkPolyDataMapper() ma…

25届计算机毕业设计:3步打造北部湾助农平台,Java SpringBoot实践

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

《OpenCV计算机视觉》—— 图像轮廓检测与绘制

文章目录 一、轮廓的检测二、轮廓的绘制图像轮廓检测与绘制的代码实现 三、轮廓的近似 一、轮廓的检测 轮廓检测是指在包含目标和背景的数字图像中&#xff0c;忽略背景和目标内部的纹理以及噪声干扰的影响&#xff0c;采用一定的技术和方法来实现目标轮廓提取的过程注意:做轮…

探索Python中的Ellipsis:不仅仅是三个点

在Python 3.9中&#xff0c;Ellipsis 对象被赋予了一个新名称&#xff0c;即 ...&#xff0c;这使得它更容易输入和使用。这个变化是在Python 3.9版本中引入的&#xff0c;而不是3.1。这个变化的好处包括&#xff1a; 易用性&#xff1a;使用 ... 比输入 Ellipsis 更快&#xf…

第11讲 回环检测

1、理解回环检测的必要性 2、掌握基于词袋的外观式回环检测 3、通过DBoW3的实验&#xff0c;学习词袋模型的实际用途 1、概述 1.1 回环检测的意义 回环检测模块能够给出除了相邻帧的一些是个更加久远的约束。相机经过了同一个地方&#xff0c;采集了相似的数据。回环检测的关…

OpenCV 之图像平滑处理

引言 图像平滑处理&#xff08;也称为“模糊处理”&#xff09;是计算机视觉中一项非常基础的技术&#xff0c;常用于减少图像噪声或失真&#xff0c;提高图像质量。平滑处理可以通过各种滤波器实现&#xff0c;常见的滤波器包括均值滤波、方框滤波、高斯滤波和中值滤波。本文…

【赵渝强老师】大数据生态圈中的组件

大数据体系架构中的组件非常多&#xff0c;每个组件又属于不同的生态圈系统。从最早的Hadoop生态圈体系开始&#xff0c;逐步有了Spark生态圈体系和Flink生态圈体系。因此在学习大数据之前有必要了解一下每一个生态圈体系中具体包含哪些组件&#xff0c;以及它们的作用又是什么…

在移动应用程序中集成模糊方法的基于物联网的天气监测系统的实现

这篇论文的标题是《IMPLEMENTATION OF WEATHER MONITORING SYSTEM BASED INTERNET OF THINGS USING INTEGRATED FUZZY METHOD IN MOBILE APPLICATIONS》&#xff0c;作者是 Muhammad Malik Amin&#xff0c;来自 Politeknik Negeri Jakarta 的 D-IV INSTRUMENTASI DAN KONTROL …

WebAssembly内存结构学习记录

参考&#xff1a; 大文件上传深入研究&#xff1a;https://juejin.cn/post/6870837414852886542 WorkerWasm切片上传&#xff1a;https://juejin.cn/post/7221003401996091429 Wasm实现MD5文件编码&#xff1a;https://juejin.cn/post/7319541565318398003 SharedArrayBuffer与…

Python | 使用Pygments生成漂亮的代码段截图

在创建技术文档或教程时&#xff0c;包含代码段的图像以说明特定的示例或概念可能会有所帮助。但是&#xff0c;对代码文件进行屏幕截图可能看起来不专业&#xff0c;并且难以阅读。本文将探索如何使用库pygments将编程代码转换为Python中美丽的图像片段。 Pygments库 Pygmen…

基于Java+SpringBoot+Vue+MySQL的失物招领管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于SpringBootVue的失物招领管理系统【附源码文档】、前后…

Java 入门指南:Java 并发编程 —— 并发容器 LinkedBlockingQueue

BlockingQueue BlockingQueue 是Java并发包&#xff08;java.util.concurrent&#xff09;中提供的一个阻塞队列接口&#xff0c;它继承自 Queue 接口。 BlockingQueue 中的元素采用 FIFO 的原则&#xff0c;支持多线程环境并发访问&#xff0c;提供了阻塞读取和写入的操作&a…

JavaEE---Spring MVC(4)

MVC学习小案例1 在这里我们要实现一个计算器的功能 在这之前,先解决一个bug! 写好代码之后开始运行,运行发现不对,sum计算不出来,然后我百思不得其解, 1.对着后端代码一顿输出,还是没觉得有问题. 2.对着前端代码一顿输出,也没看出任何问题 3.是不是我前后端交互出错了呢?查找…

Python案例 | 四阶龙格库塔法简介

1.引言 在数值分析中&#xff0c;龙格-库塔法&#xff08;Runge-Kutta methods&#xff09;是用于非线性常微分方程的解的重要的一类隐式或显式迭代法。这些技术由数学家卡尔龙格和马丁威尔海姆库塔于1900年左右发明。 龙格-库塔(Runge-Kutta)方法是一种在工程上应用广泛的高…

工厂验收(FAT)和现场验收(SAT)的含义

工厂验收&#xff08;Factory Acceptance Test&#xff0c;FAT&#xff09;和现场验收&#xff08;Site Acceptance Test&#xff0c;SAT&#xff09;是在工程领域中常见的术语&#xff0c;用于确保设备在制造商及用户之间达成一致的验收标准&#xff0c;保证设备能够正常、安全…

【图灵完备 Turing Complete】游戏经验攻略分享 Part.2 算术运算

算术运算部分算是开始有难度了。 前几关按照自己思路来&#xff0c;二进制速算应该没问题。 画真值表&#xff0c;卡诺图&#xff0c;推表达式。 下面几关&#xff0c;几个输出信号分开来看&#xff0c;有三个输出就画三个卡诺图&#xff0c;有几个画几个&#xff0c;分而治之。…

Shadow Dom 是什么

概念 官方&#xff1a;https://developer.mozilla.org/zh-CN/docs/Web/API/Web_components/Using_shadow_DOM 核心&#xff1a;影子 DOM&#xff08;Shadow DOM&#xff09;允许你将一个 DOM 树附加到一个元素上&#xff0c;并且使该树的内部对于在页面中运行的 JavaScript 和…

Java笔试面试题AI答之正则表达式(3)

文章目录 13. 简述Java String支持哪几种使用正则表达式的方法&#xff1f;14. 请列举常见校验数字的表达式 &#xff1f;15. 请列举常见校验字符的表达式 &#xff1f;1. 汉字2. 英文和数字3. 特定长度的字符串4. 由26个英文字母组成的字符串5. 由数字和26个英文字母组成的字符…

JVM面试(五)垃圾回收机制和算法

概述 了解Java虚拟机的垃圾回收机制&#xff08;Garbage Collection&#xff0c;简称GC&#xff09;&#xff0c;我们也要像其作者John McCarthy一样&#xff0c;思考一下三个问题&#xff1a; 哪些内存需要回收&#xff1f;什么时候回收&#xff1f;如何回收&#xff1f; 虽…

pytorch+深度学习实现图像的神经风格迁移

本文的完整代码和部署教程已上传至本人的GitHub仓库&#xff0c;欢迎各位朋友批评指正&#xff01; 1.各代码文件详解 1.1 train.py train.py 文件负责训练神经风格迁移模型。 加载内容和风格图片&#xff1a;使用 utils.load_image 函数加载并预处理内容和风格图片。初始化…