挑战100天 AI In LeetCode Day02(1)

news2024/12/28 8:24:59

挑战100天 AI In LeetCode Day02(1)

  • 一、LeetCode介绍
  • 二、LeetCode 热题 HOT 100-3
    • 2.1 题目
    • 2.2 题解
  • 三、面试经典 150 题-3
    • 3.1 题目
    • 3.2 题解

一、LeetCode介绍

在这里插入图片描述
LeetCode是一个在线编程网站,提供各种算法和数据结构的题目,面向程序员、计算机科学专业学生和技术爱好者等人群,旨在帮助他们提高算法和编程技能。LeetCode上的问题通常来自各种技术公司的面试题目,因此它也是程序员面试准备的重要资源之一。

LeetCode上的问题涵盖了各种难度级别,从入门级到专家级都有不同难度的题目可供练习。用户可以选择使用不同的编程语言提交答案,LeetCode能够对结果进行评估并返回测试结果。

除了题目外,LeetCode还提供了讨论区、排行榜等社区功能,用户可以在这里交流学习心得、解决疑难问题,并与其他用户比较自己的做题成绩。

挑战100天 AI In LeetCode是基于LeetCode题库,借助AI的能力进行解题、并学习其解题过程。

二、LeetCode 热题 HOT 100-3

2.1 题目

无重复字符的最长子串

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

 

示例 1:

输入: s = "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
示例 2:

输入: s = "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
示例 3:

输入: s = "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
     请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。
 

提示:

0 <= s.length <= 5 * 104
s 由英文字母、数字、符号和空格组成

2.2 题解

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

解题思路:

这道题可以通过使用滑动窗口来解决,滑动窗口是一种在数组或字符串上进行迭代的算法,该技术可以将嵌套的循环问题转换为线性时间问题,从而降低时间复杂度。

具体来说,我们可以定义一个窗口,用于表示当前的子串。在每一步的操作中,我们会将左端点向右移动一格,并尝试拓展右端点,如果当前子串中不存在重复字符,则将右端点继续向右移动,直到出现重复字符为止。此时,我们找到的不含重复字符的子串就是以左端点开始的最长子串。

具体实现时,我们可以使用一个哈希集合存储当前子串中的字符,保证查询和删除的时间复杂度均为 O(1)。在移动右端点时,如果发现当前字符已经存在于哈希集合中,则将左端点向右移动,直到重复的字符从当前子串中移除为止。每次移动左端点时,从哈希集合中删除对应的字符,以此保证其后仍然是一个不含重复字符的子串。

public int lengthOfLongestSubstring(String s) {
    if (s == null || s.length() == 0) {
        return 0;
    }
    int maxLength = 0;
    Set<Character> set = new HashSet<>();
    int left = 0, right = 0;
    while (right < s.length()) {
        if (!set.contains(s.charAt(right))) {
            set.add(s.charAt(right));
            maxLength = Math.max(maxLength, set.size());
            right++;
        } else {
            set.remove(s.charAt(left));
            left++;
        }
    }
    return maxLength;
}

在这里插入图片描述

三、面试经典 150 题-3

数组 / 字符串

3.1 题目

删除有序数组中的重复项

给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。

考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过:

更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。nums 的其余元素与 nums 的大小不重要。
返回 k 。
判题标准:

系统会用下面的代码来测试你的题解:

int[] nums = [...]; // 输入数组
int[] expectedNums = [...]; // 长度正确的期望答案

int k = removeDuplicates(nums); // 调用

assert k == expectedNums.length;
for (int i = 0; i < k; i++) {
    assert nums[i] == expectedNums[i];
}
如果所有断言都通过,那么您的题解将被 通过。

 

示例 1:

输入:nums = [1,1,2]
输出:2, nums = [1,2,_]
解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2 。不需要考虑数组中超出新长度后面的元素。
示例 2:

输入:nums = [0,0,1,1,1,2,2,3,3,4]
输出:5, nums = [0,1,2,3,4]
解释:函数应该返回新的长度 5 , 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4 。不需要考虑数组中超出新长度后面的元素。
 

提示:

1 <= nums.length <= 3 * 104
-104 <= nums[i] <= 104
nums 已按 非严格递增 排列

3.2 题解

时间复杂度为 O(n),其中 n 是数组的长度。空间复杂度为 O(1)。

解题思路:

代码中使用了双指针的思想,通过一个指针 i 来指示当前不重复元素的位置。遍历数组时,如果遇到不同的元素,就将该元素放到 i 的位置,并将 i 后移一位,从而实现原地删除重复元素的功能。

  1. 初始化一个指针 i,初始值为 0,表示当前不重复元素的位置。
  2. 遍历数组,从索引 1 开始:
    • 如果当前元素与前一个元素相同,说明出现了重复元素,跳过该元素。
    • 如果当前元素与前一个元素不同,将当前元素覆盖到指针 i 的位置,并将指针 i 向前移动一位。
  3. 返回指针 i 的值,即为新数组的长度。
public int removeDuplicates(int[] nums) {
    if (nums == null || nums.length == 0) {
        return 0;
    }
    int i = 0;
    for (int j = 1; j < nums.length; j++) {
        if (nums[j] != nums[i]) {
            i++;
            nums[i] = nums[j];
        }
    }
    return i + 1;
}

在这里插入图片描述

至此,挑战100天 AI In LeetCode Day02(1)完成,后续会持续调整;查阅过程中若遇到问题欢迎留言或私信交流。

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

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

相关文章

【Java】封装、继承、多态

面向对象的重要特征&#xff1a;封装、继承、多态&#xff1b; 面向对象的语言的语言并不止Java&#xff0c;C也是面向对象的语言&#xff1b; 访问限定符 public&#xff1a;在哪里都可以使用&#xff08;公开的&#xff09;&#xff1b;private&#xff1a;仅在当前类可以使用…

Turtle绘制五角星-第10届蓝桥杯省赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第4讲。 Turtle绘制五角星&…

【扩散模型】5、Diffusion models beat GAN | 使用类别引导图像生成

论文&#xff1a;Diffusion models beat GAN on image Synthesis 代码&#xff1a;https://github.com/openai/guided-diffusion 出处&#xff1a;OPENAI | NIPS2021 时间&#xff1a;2021 贡献&#xff1a; 在本文章之前&#xff0c;扩散模型生成的图片已经非常逼真了&am…

同样是巡检,巡检系统在不同行业运用大不同

随着智能巡检系统使用的扩大&#xff0c;巡检管理系统越来越被人们认可使用与喜爱&#xff0c;尚未使用的也都在准备的路上了&#xff0c;然而如何选择还是有些模糊的。今天我们就一起看下智能巡检系统在不同行业是如何运用的。 写在前面知识普及&#xff0c;为了长远发展的需…

07_es分布式搜索引擎3

一、数据聚合 1.聚合的分类 ①聚合可以对文档数据的统计&#xff0c;分析&#xff0c;运算 ②聚合的分类 桶Bucket聚合&#xff1a;对文档按照字段分组度量Metric聚合:计算最大值&#xff0c;最小值&#xff0c;平均值管道pipeline聚合:以聚合的结果为基础聚合 ③聚合的类…

Banana Pi BPI-W3 RK3588开发平台批量产测软件,全面批量测试

优秀的产品都要进行严苛的产品测试才能够经得起市场的检验由ArmSoM团队研发的产测软件用于在量产的过程中快速地甄别产品功能和器件的好坏&#xff0c;即重点 FCT&#xff08;Functional Test&#xff09;测试&#xff0c;进而提高生产效率和检测的准确性。ArmSoM团队的专业产测…

第二证券:需求回暖叠加价值提升 机构加码PCB板块

受华为手机、小米手机近期广受欢迎等利好消息提振&#xff0c;叠加AI板块的爆发&#xff0c;作为中心零部件的 PCB&#xff08;印制电路板&#xff09;板块后市可期&#xff0c;部分安排近期加码布局。 量价齐升 后市可期 安排布局PCB板块的理由主要有两个&#xff0c;一是需…

chrome driver下载、selenium安装及报错解决

目录 一、Chrome驱动下载 1.查看Chrome版本 2.下载驱动 3.驱动的路径 无法运行驱动 二、selenium的安装与使用 1.安装selenium 2.使用selenium 参考 一、Chrome驱动下载 1.查看Chrome版本 打开Chrome浏览器&#xff0c;点击右上角的三个点&#xff0c;再点击设置。 …

老胡的周刊(第114期)

老胡的信息周刊[1]&#xff0c;记录这周我看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。 &#x1f3af; 项目 pyvideotrans[2] 将视频从一种语言翻译为另一…

什么是大模型?一文读懂大模型的基本概念

大模型是指具有大规模参数和复杂计算结构的机器学习模型。本文从大模型的基本概念出发&#xff0c;对大模型领域容易混淆的相关概念进行区分&#xff0c;并就大模型的发展历程、特点和分类、泛化与微调进行了详细解读&#xff0c;供大家在了解大模型基本知识的过程中起到一定参…

mac电脑邮件附件清理工具CleanMyMacX2024

邮件附件清理功能可以保证在收件箱中原始附件的安全性的基础上&#xff0c;清理邮件下载和附件的本地副本&#xff0c;回收大量的磁盘空间。 在默认情况下&#xff0c;当您打开或者查看新的邮件附件时&#xff0c;应用程序将将其副本存储到磁盘上直到您删除相关的电子邮件。在…

智行破晓,驭未来航程!——经纬恒润智能驾驶数据闭环云平台OrienLink重磅来袭

2023是被AI技术标记的⼀年。年初&#xff0c;OpenAI的GPT崭露头角&#xff1b;6月&#xff0c;Tesla在CVPR2023上对World Model进行深度解读&#xff1b;8月&#xff0c;SIGGRAPH见证GH200、L40S显卡和ChatUSD的登场&#xff0c;FSD V12彰显端到端智能驾驶的实力&#xff1b;9月…

希亦内衣洗衣机和小米哪个品牌好?内衣洗衣机横评对比

内衣洗衣机作为一种小型家电&#xff0c;受到越来越多人的欢迎。内衣洗衣机虽然体积小&#xff0c;但功能并不简单。我们可以选择具备多种洗涤模式、容量适中、节能环保的洗衣机&#xff0c;以满足我们的不同需求。那么面对希亦以及小米这两个热门的洗衣机品牌&#xff0c;我们…

MyBatis 分页插件 PageHelper 6.0.0 发布

6.0.0 - 2023-11-05 基于jdk8适配&#xff0c;6.0开始不支持jdk6和7&#xff0c;如果有需要可以使用5.x版本增加异步count支持&#xff0c;全局配置asyncCount&#xff0c;默认false&#xff0c;单次设置&#xff1a;PageHelper.startPage(1, 10).enableAsyncCount(); 异步使用…

Tuxera NTFS2023永久免费版本下载

若我们想要将一款格式为NTFS的磁盘转换成FAT32格式&#xff0c;如何通过NTFS for Mac进行转换呢&#xff1f;使用过这款软件的用户都之后&#xff0c;这款产品包含一个Disk Manager组件&#xff0c;通过这个组件我们可以对磁盘进行管理操作&#xff0c;所以想要将磁盘格式进行转…

SM5102 3.7V 锂电池转干电池充放管理芯片

SM5102 3.7V 锂电池转干电池充放管理芯片 简介 &#xff1a; SM5102 是一款锂电池充放电管理专用芯片。充电工作时, 可以为 3.7V 锂电池进行充电&#xff0c;电流最高可配置1A。放电工作时&#xff0c;采用开关频率 1MHz同步降压转换器进行放电&#xff0c;放电电流可以达到3…

Flink往Starrocks写数据报错:too many filtered rows

Bug信息 Caused by: com.starrocks.data.load.stream.exception.StreamLoadFailException: {"TxnId": 2711690,"Label": "cd528707-8595-4a35-b2bc-39b21087d6ec","Status": "Fail","Message": "too many f…

iphone15 nplayer播放本地电影投屏天猫魔盒(电视)卡顿解决方案

文章目录 投屏环境现象写在前面 解决方案所需投屏app安装方法试用结果如果文章对您有用&#xff0c;欢迎收藏或关注&#xff01; iphone15 nplayer播放本地电影投屏天猫魔盒(电视)卡顿解决方案 投屏环境 全千兆wifi6局域网 1000兆电信宽带 天猫魔盒4Pro 8G&#xff08;M19&…

数据集:机器人理解世界的关键

原创 | 文 BFT机器人 传统的机器人和工业自动化解决方案已经颇有成效。在工厂中入驻自动化机器人可以快速地帮助工人们完成长时间重复劳动的任务。随着用工成本上涨、技能人才短缺、工作环境恶劣等问题的凸显&#xff0c;社会更迫切地需要采用自动化设备代替人工来完成该类操作…

红黑树——原理刨析

众所周知&#xff0c;红黑树是从AVLTree树中衍变而来的&#xff0c;所以在学红黑树之前还是要好好的理解一下AVLTree树的原理&#xff0c;为理解红黑树减轻理解负担&#xff0c;好了进入正题。 红黑树原理&#xff1a; 由名可知&#xff0c;红黑树——肯定是与颜色有关的一个树…