每日算法(第十七期)

news/2024/12/2 20:44:51/

先来回顾一下上期的问题及答案:

「无重复字符的最长子串」(Longest Substring Without Repeating Characters)。

题目描述: 给定一个字符串 s,请找出其中不含有重复字符的最长子串的长度。

以下是对应的JavaScript实现:

function lengthOfLongestSubstring(s) {const map = new Map();let maxLength = 0;let start = 0;for (let i = 0; i < s.length; i++) {if (map.has(s[i])) {start = Math.max(start, map.get(s[i]) + 1);}map.set(s[i], i);maxLength = Math.max(maxLength, i - start + 1);}return maxLength;
}

解题思路:

  • 使用滑动窗口的思想解决问题。

  • 定义两个指针 starti,分别表示子串的起始位置和结束位置。

  • 遍历字符串 s,对于每个字符,判断其是否在当前子串中出现过。

  • 如果字符已经出现过,则更新 start 为该字符上次出现的位置的下一个位置。

  • 更新 maxLength,记录最长的不重复子串的长度。

  • 最终返回 maxLength

时间复杂度分析:

  • 遍历字符串的时间复杂度为 O(n),其中 n 是字符串的长度。

空间复杂度分析:

  • 使用了一个哈希表 map 来存储字符和其对应的位置,最坏情况下,哈希表的大小与字符串的长度相等,所以空间复杂度为 O(n)。

例如:

console.log(lengthOfLongestSubstring("abcabcbb")); // 3
console.log(lengthOfLongestSubstring("bbbbb")); // 1
console.log(lengthOfLongestSubstring("pwwkew")); // 3

在上述例子中,给定字符串分别为 "abcabcbb""bbbbb""pwwkew"。通过调用 lengthOfLongestSubstring 函数找到不含有重复字符的最长子串的长度。最长子串的长度分别为 313

2023年6月7日

给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。

'.' 匹配任意单个字符。 '*' 匹配零个或多个前面的那一个元素。 所谓匹配,是要涵盖整个字符串 s 的,而不是部分字符串。

上面问题的答案会在第二天的公众号推文中公布,大家可以关注公众号:程序员每日三问,第一时间获得推送内容。

学习不打烊,充电加油只为遇到更好的自己,每天早上9点纯手工发布面试题(死磕自己,愉悦大家) 希望大家在这浮夸的程序员圈里保持冷静,每天坚持花20分钟来学习与思考,在千变万化,类库层出不穷的今天,不要等到找工作时才狂刷题,提倡每日学习。


http://www.ppmy.cn/news/255067.html

相关文章

2023智源大会议程公开丨基础模型前沿技术论坛

6月9日&#xff0c;2023北京智源大会&#xff0c;将邀请这一领域的探索者、实践者、以及关心智能科学的每个人&#xff0c;共同拉开未来舞台的帷幕&#xff0c;你准备好了吗&#xff1f;与会知名嘉宾包括&#xff0c;图灵奖得主Yann LeCun、图灵奖得主Geoffrey Hinton、OpenAI创…

港科夜闻|海南省教育厅党委书记曹献坤到访香港科大(广州)开展实地调研

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、海南省教育厅党委书记曹献坤到访香港科大(广州)开展实地调研。香港科大(广州)临时党委书记屈哨兵从政治建设、思想建设、组织建设、制度建设及工作机制等方面&#xff0c;为曹献坤书记详细介绍了学校的党建工作体系构建&…

linux和windows爬虫有什么区别

Linux和Windows作为操作系统对于爬虫的差异不是特别大&#xff0c;因为两个操作系统同时都可以用于编写运行爬虫的程序。 主要的差异可能源于开发工具和环境的差异。Linux上通常使用命令行工具来编写和运行爬虫程序&#xff0c;而Windows则更加倾向于使用图形化界面的编程软件…

SONY EVI-D100P

索尼EVI-D100P&#xff08;PAL&#xff09;视频摄像机对于任何需要使用拥有平移/倾斜/缩放遥控操作灵活性的高质量彩色视频摄像机的应用来说均是一种最佳的选择&#xff0c;并且是一体化设计。这种高质量的CCD摄像机将高速安静的平移/倾斜和宽广的视角以及40x缩放结合起来。当摄…

清理SONY D-NE10 的线控器

这台SONY D-NE10的线控器买来就存在串键的通病&#xff0c;用了一段时间后&#xff0c;连停止键都不好用了&#xff0c;加上机器本身的按键也全部失灵&#xff0c;所以严重影响了使用&#xff01;没办法&#xff0c;得拆开清理一下了。 故障现象 1、音量加减键存在串键现象 …

惠普800g3/i5cpu安装黑苹果12详细教程(因为我有)---(未完善)

# 配备 - windows系统(建议在windows下进行配置) - balenaetcher(苹果镜像烧录&#xff09; - macos12镜像 - U盘 - efi(我已经有适配的&#xff09;&#xff08;上网搜,没有就选通用efi试试&#xff09; - diskgenius(efi操作) - bios(看主板怎么进入,本人f8,f9,f10试了…

惠普的服务器改win7系统,惠普笔记本win8改win7系统设置bios的详细教程

如今&#xff0c;市面上的惠普笔记本电脑预装的都是win8系统&#xff0c;但是很多用户都习惯了使用win7系统&#xff0c;对win8系统并不是非常的喜爱&#xff0c;所以想将预装的win8系统给改成win7系统。而win8改win7系统的话&#xff0c;都要进入bios设置后才能够安装。因此&a…

HP EliteDesk 800 G4 DM 35W (Japan) Mini Tower黑苹果efi引导文件

原文来源于黑果魏叔官网&#xff0c;转载需注明出处。&#xff08;下载请直接百度黑果魏叔&#xff09; 硬件型号驱动情况 主板惠普 83E2&#xff08;Q370 芯片组&#xff09; 处理器英特尔 Core i3-8100 3.60GHz 四核已驱动 内存8 GB ( 来酷 DDR4 2666MHz 8GB )已驱动 硬…