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

力扣刷题(4)

正则表达式匹配

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

思路来源: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),因此可以轻松的通过

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 日系编曲:日系架子鼓写作思路 支点音符 幽灵音 抢拍(重音移位)半速与倍速
  • Kotlin 范型之协变、逆变、不变
  • Springboot-文件的上传和下载
  • 解析 MySQL 数据库的 Python 接口:`mysqlclient` 与 `django-mysql` 实战指南20240904
  • ArcGIS展线/投线教程
  • idea 编译断点运行 tomcat 10.1.28 源码
  • redis的一些重要的基础知识
  • onvif应用--IPC鉴权(认证)
  • Linux起源
  • matlab基本语法
  • windows安装composer
  • 网恋照妖镜源码搭建教程
  • LINUX常用命令-docker-Kubernetes
  • 【机器人工具箱Robotics Toolbox开发笔记(二)】Matlab中机器人工具箱的下载与安装
  • k8s-pod 实战一 (创建pod,启动命令,参数,pod故障排除,拉取命令)
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • Cumulo 的 ClojureScript 模块已经成型
  • MD5加密原理解析及OC版原理实现
  • spring security oauth2 password授权模式
  • windows下使用nginx调试简介
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 聊聊directory traversal attack
  • 什么软件可以剪辑音乐?
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 怎么把视频里的音乐提取出来
  • 智能网联汽车信息安全
  • 我们雇佣了一只大猴子...
  • ​2021半年盘点,不想你错过的重磅新书
  • ​十个常见的 Python 脚本 (详细介绍 + 代码举例)
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • (3)llvm ir转换过程
  • (Java入门)抽象类,接口,内部类
  • (篇九)MySQL常用内置函数
  • (转)Scala的“=”符号简介
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .bat批处理(六):替换字符串中匹配的子串
  • .NET CORE Aws S3 使用
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET 读取 JSON格式的数据
  • .Net 基于MiniExcel的导入功能接口示例
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .NetCore 如何动态路由
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • .net生成的类,跨工程调用显示注释
  • //解决validator验证插件多个name相同只验证第一的问题
  • []T 还是 []*T, 这是一个问题
  • [20150904]exp slow.txt
  • [2019红帽杯]Snake
  • [acwing周赛复盘] 第 94 场周赛20230311
  • [AI]ChatGPT4 与 ChatGPT3.5 区别有多大
  • [AIGC] HashMap的扩容与缩容:动态调整容量以提高性能
  • [AIGC] Java List接口详解
  • [Angular] 笔记 21:@ViewChild
  • [ASP.NET MVC]如何定制Numeric属性/字段验证消息