挑战100天 AI In LeetCode Day03(热题+面试经典150题)

news2024/12/26 2:20:22

挑战100天 AI In LeetCode Day03(热题+面试经典150题)

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

一、LeetCode介绍

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

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

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

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

二、LeetCode 热题 HOT 100-5

2.1 题目

最长回文子串

给你一个字符串 s,找到 s 中最长的回文子串。

如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。

 

示例 1:

输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。
示例 2:

输入:s = "cbbd"
输出:"bb"
 

提示:

1 <= s.length <= 1000
s 仅由数字和英文字母组成

2.2 题解

时间复杂度为 O(n^2),其中 n 为字符串的长度,需要遍历字符串并对每个字符进行中心扩散;空间复杂度为 O(1),只需要常数级别的额外空间。

解题思路:

这个问题可以使用中心扩散法来解决。

具体而言,我们可以遍历字符串 s,以每个字符为中心,向两边扩散,找到以当前字符为中心的最长回文子串。需要注意的是,回文子串的中心可能是一个字符,也可能是两个相邻的字符,因此需要分别考虑这两种情况。

另外,需要考虑奇数长度和偶数长度的回文子串。对于奇数长度,中心只有一个字符;对于偶数长度,中心是两个相邻的字符。

在遍历过程中,记录下目前找到的最长回文子串的起始位置和长度,最终得到的就是整个字符串的最长回文子串。

public String longestPalindrome(String s) {
    if (s == null || s.length() < 1) {
        return "";
    }
    
    int start = 0, end = 0;
    
    for (int i = 0; i < s.length(); i++) {
        int len1 = expandAroundCenter(s, i, i); // 以当前字符为中心的奇数长度回文子串
        int len2 = expandAroundCenter(s, i, i + 1); // 以当前字符和下一个字符为中心的偶数长度回文子串
        int len = Math.max(len1, len2);
        if (len > end - start) {
            start = i - (len - 1) / 2;
            end = i + len / 2;
        }
    }
    
    return s.substring(start, end + 1);
}

private int expandAroundCenter(String s, int left, int right) {
    while (left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)) {
        left--;
        right++;
    }
    return right - left - 1;
}

在这里插入图片描述

三、面试经典 150 题-5

数组 / 字符串

3.1 题目

多数元素

给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。

你可以假设数组是非空的,并且给定的数组总是存在多数元素。

 

示例 1:

输入:nums = [3,2,3]
输出:3
示例 2:

输入:nums = [2,2,1,1,1,2,2]
输出:2
 

提示:
n == nums.length
1 <= n <= 5 * 104
-109 <= nums[i] <= 109

3.2 题解

时间复杂度为 O(n),其中 n 为数组的长度,只需要遍历一次数组即可找到多数元素;空间复杂度为 O(1),只需要常数级别的额外空间。

解题思路:

这个问题可以使用摩尔投票算法来解决。摩尔投票算法的核心思想是一一对消。

假设数组中的第一个元素为候选多数元素,遍历数组时,如果下一个元素与当前候选元素相同,则增加计数;如果不同,则减少计数。

当计数变为0时,重新选择下一个元素作为候选多数元素。

由于题目保证了一定存在多数元素,最终的候选多数元素就是所求的多数元素。

public int majorityElement(int[] nums) {
    int count = 0;
    int candidate = 0;
    
    for (int num : nums) {
        if (count == 0) {
            candidate = num;
        }
        count += (num == candidate) ? 1 : -1;
    }
    
    return candidate;
}

在这里插入图片描述

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

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

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

相关文章

C语言实现将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5

完整代码&#xff1a; // 将一个正整数分解质因数。例如&#xff1a;输入90,打印出902*3*3*5 #include<stdio.h> //定义全局变量&#xff0c;使i可以作用于函数的递归调用中 int i2;void func(int num){//递归结束条件&#xff0c;当这个数除以最后一个它的因子时&#…

掌动智能:功能测试及拨测主要功能

在企业中对于功能测试及拨测而言&#xff0c;用户只需提供应用包和产品文档&#xff0c;由资深测试专家设计并执行测试&#xff0c;覆盖核心场景&#xff0c;包含特定业务流程以及行业通用特殊场景&#xff0c;支持需求定制。 执行过程严格监控&#xff0c;依据应用功能和业务需…

提升设备可靠性:人工智能(AI)在设备维护中的应用

当今社会&#xff0c;人工智能&#xff08;AI&#xff09;已从遥不可及的概念转变为现实&#xff0c;并被广泛地讨论和应用。AI技术已经渗透到各个领域&#xff0c;包括工业领域的设备维护。在现代工业领域&#xff0c;设备可靠性是企业持续运营和保持竞争力的关键因素之一。随…

搭建嵌入式GDB调试环境以及VSCode+gdbserver 图形化调试

目录 1 搭建嵌入式gdb调试环境 1.1 交叉编译工具链自带的gdb和gdbserver 1.2 使用gdb进行嵌入式程序调试 1.2.1编写简单测试程序 1.2.2 gdb调试程序 1.3 源码编译gdb和gdbserver 1.3.1 下载gdb和gdbserver源码 1.3.2 编译gdb 1.3.3 移植gdbserver 2 VSCodegdbserver 图…

技术分享 | app自动化测试(Android)-- 属性获取与断言

断言是 UI 自动化测试的三要素之一&#xff0c;是 UI 自动化不可或缺的部分。在使用定位器定位到元素后&#xff0c;通过脚本进行业务操作的交互&#xff0c;想要验证交互过程中的正确性就需要用到断言。 常规的UI自动化断言 分析正确的输出结果&#xff0c;常规的断言一般包…

检测和排除Wi-Fi性能问题的工具

在监控 Wi-Fi 网络时&#xff0c;需要持续监控和分析各种 Wi-Fi 网络方面&#xff0c;包括信号强度和接入点正常运行时间&#xff0c;以避免遇到网络问题。Wi-Fi 分析器工具可帮助您轻松跟踪和分析无线网络的性能&#xff0c;管理员可以从不同的无线组件&#xff08;如WLC和接入…

mysql的备份和恢复

备份&#xff1a;完全备份 增量备份 完全备份&#xff1a;将整个数据库完整的进行备份 增量备份&#xff1a;在完全备份的基础之上&#xff0c;对后续新增的内容进行备份 备份的需求 1、在生产环境中&#xff0c;数据的安全至关重要&#xff0c;任何数据的都可能产生非常严重…

蛋白质中不同氨基酸chi角原子的one-hot表示

蛋白质中的"chi角"&#xff08;chi angle&#xff09;通常是指侧链自由旋转的二面角&#xff0c;用于描述氨基酸侧链中的旋转构象。侧链是氨基酸分子的一部分&#xff0c;它们附着在氨基酸主链上&#xff0c;并可以以不同的角度自由旋转。chi角用于描述侧链旋转的几何…

EPLAN-P8软件技术分享文章

EPLAN公司成立于1984年德国。EPLAN最初的产品是基于DOS平台&#xff0c;然后经历了Windows3.1、Windows95、Windows98、Windows2000、Windows Vista等、Windows7、Windows8等平台发展历史。EPLAN是以电气设计为基础的跨专业的设计平台&#xff0c;包括电气设计、流体设计、仪表…

OpenCV学习之图像获取和显示

目录 图像获取从图片文件获取图像从视频文件获取图像 图像显示示例代码从图片文件获取图像从视频获取图像 图像获取 OpenCV 支持从图片文件获取图像、从视频文件获取图像以及从摄像头获取图像等方式。 从图片文件获取图像 使用函数imread可以从图片文件中读取图像,具体用法如…

Bean的生命周期,循环依赖

右边部分为生命周期。 二级缓存和三级缓存的区别就是是否被引用过&#xff0c;未被引用的放在三级缓存。如果被引用了&#xff0c;则把三级缓存的删除放到二级缓存

清华深圳2024届推免拟录取名单

名单 分析 清华深圳 数据科学与信息技术专业 共录取41人&#xff1b; 清华深圳 计算机技术专业共录取37人&#xff0c;都是专硕085404计算机技术&#xff1b; 电子信息专业大数据工程方向录取推免生13人&#xff1b; 电子信息集成电路与系统方向录取推免生18人&#xff1b; 电…

njust校园网自动认证

分析校园网登录页面 打开登录界面&#xff0c;填入你自己的账号和密码(先别点击登录)&#xff0c;然后按下 F12 点击了登录后&#xff1a; 获取登录请求的URL链接&#xff0c;可以看到南理校园网是使用POST的方式来登录的。 查看POST请求参数&#xff1a; 后面需要用到的…

SAT Encoding and CDCL Algorithm听课笔记

CDCL&#xff1a;&#xff1a;归结式 如果x不出现在公式的别的地方&#xff0c;那么两者可以等价 CDCL&#xff1a;&#xff1a;watched literals 通过监测文字来判断当前子句是否是单元子句 先选择两个未赋值的文字作为监测文字&#xff0c;若其中的监测文字被赋值后则去寻找…

基于单片机的土壤温湿度控制系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 技术交流认准下方 CSDN 官方提供的联系方式 文章目录 概要 一、温湿度控制系统的整体规划2.3系统的总体构架 二、温度湿度控制系统硬件设计3.1系统硬件概述 三、 温湿度系统软件…

Java web(七):VueElement

文章目录 一、Vue1.1 基本介绍1.2 常用指令1.3 生命周期1.4 案例VueAxios 二、Element三、综合案例【VueElementAxiosServeltMybatis】 一、Vue 1.1 基本介绍 Vue 是一套前端框架&#xff0c;免除原生JavaScript中的DOM操作&#xff0c;简化书写。 基于MVVM(Model-View-View…

六大排序算法:插入、选择、冒泡、快排、希尔、归并

1、插入排序 解析&#xff1a;第一个元素设定为已经排好序&#xff0c;依次选择后续的元素插入到已经排好序的组内进行排序。 图示&#xff1a; 代码&#xff1a; public static void insertionSort(int[] arr) {int n arr.length;for (int i 1; i < n; i) {int key a…

Databend 开源周报第 118 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 MERGE INTO 现已…

计算机毕业设计 基于SpringBoot高校毕业与学位资格审核系统的设计与实现 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

VR全景在旅游中应用有哪些?VR云游的优势是什么?

近日受到剧烈日冕物质抛射活动影响&#xff0c;漠河再现极光美景&#xff0c;极光舞动的灿烂星空下&#xff0c;正在封冻的黑龙江上&#xff0c;无数的冰排随波而去&#xff0c;天地之间光影流动好不美丽。相信很多人都想了解、观赏祖国的大好风光&#xff0c;但是碍于没时间、…