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

news2024/11/26 13:29:42

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

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

一、LeetCode介绍

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

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

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

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

二、LeetCode 热题 HOT 100-9

2.1 题目

字符串转换整数 (atoi)

请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。

函数 myAtoi(string s) 的算法如下:

读入字符串并丢弃无用的前导空格
检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。
读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。
将前面步骤读入的这些数字转换为整数(即,"123" -> 123"0032" -> 32)。如果没有读入数字,则整数为 0 。必要时更改符号(从步骤 2 开始)。
如果整数数超过 32 位有符号整数范围 [231,  2311] ,需要截断这个整数,使其保持在这个范围内。具体来说,小于 −231 的整数应该被固定为 −231 ,大于 2311 的整数应该被固定为 2311 。
返回整数作为最终结果。
注意:

本题中的空白字符只包括空格字符 ' ' 。
除前导空格或数字后的其余字符串外,请勿忽略 任何其他字符。
 

示例 1:

输入:s = "42"
输出:42
解释:加粗的字符串为已经读入的字符,插入符号是当前读取的字符。
第 1 步:"42"(当前没有读入字符,因为没有前导空格)
         ^2 步:"42"(当前没有读入字符,因为这里不存在 '-' 或者 '+'^3 步:"42"(读入 "42"^
解析得到整数 42 。
由于 "42" 在范围 [-231, 231 - 1] 内,最终结果为 42 。
示例 2:

输入:s = "   -42"
输出:-42
解释:
第 1 步:"   -42"(读入前导空格,但忽视掉)
            ^2 步:"   -42"(读入 '-' 字符,所以结果应该是负数)
             ^3 步:"   -42"(读入 "42"^
解析得到整数 -42 。
由于 "-42" 在范围 [-231, 231 - 1] 内,最终结果为 -42 。
示例 3:

输入:s = "4193 with words"
输出:4193
解释:
第 1 步:"4193 with words"(当前没有读入字符,因为没有前导空格)
         ^2 步:"4193 with words"(当前没有读入字符,因为这里不存在 '-' 或者 '+'^3 步:"4193 with words"(读入 "4193";由于下一个字符不是一个数字,所以读入停止)
             ^
解析得到整数 4193 。
由于 "4193" 在范围 [-231, 231 - 1] 内,最终结果为 4193 。
 

提示:

0 <= s.length <= 200
s 由英文字母(大写和小写)、数字(0-9)、' ''+''-''.' 组成

2.2 题解

解题思路:

  1. 初始化一个变量 result,用于存储最终的整数结果。
  2. 初始化一个变量 sign,用于存储正负号。初始值为 1,表示正数。
  3. 遍历字符串 s,跳过前导空格。
  4. 如果遇到正负号,根据正负号更新 sign 的值。
  5. 如果遇到数字字符,将其转换为整数并累加到 result 中。注意处理溢出情况。
  6. 如果遇到非数字字符,跳出循环。
  7. 返回 result * sign。
public int myAtoi(String s) {
    int result = 0;
    int sign = 1;
    int i = 0;

    // 跳过前导空格
    while (i < s.length() && s.charAt(i) == ' ') {
        i++;
    }

    // 处理正负号
    if (i < s.length() && (s.charAt(i) == '+' || s.charAt(i) == '-')) {
        sign = s.charAt(i) == '+' ? 1 : -1;
        i++;
    }

    // 遍历字符串,累加数字字符
    while (i < s.length() && Character.isDigit(s.charAt(i))) {
        int digit = s.charAt(i) - '0';
        // 检查溢出情况
        if (result > (Integer.MAX_VALUE - digit) / 10) {
            return sign == 1 ? Integer.MAX_VALUE : Integer.MIN_VALUE;
        }
        result = result * 10 + digit;
        i++;
    }

    return result * sign;
}

在这里插入图片描述

三、面试经典 150 题-9

数组 / 字符串

3.1 题目

跳跃游戏

给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。

判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。

 

示例 1:

输入:nums = [2,3,1,1,4]
输出:true
解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 13 步到达最后一个下标。
示例 2:

输入:nums = [3,2,1,0,4]
输出:false
解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。
 

提示:

1 <= nums.length <= 104
0 <= nums[i] <= 105

3.2 题解

解题思路:

  1. 初始化一个变量 max_reach,表示当前能够到达的最远距离。
  2. 遍历数组 nums,对于每个元素 num,判断当前位置 i 是否能够到达(即 i <= max_reach),如果可以到达,更新 max_reach 为 max(max_reach, i + num)。
  3. 如果遍历结束后,max_reach >= nums.length - 1,说明能够到达最后一个下标,返回 true;否则返回 false。
public boolean canJump(int[] nums) {
        int max_reach = 0;
        for (int i = 0; i < nums.length; i++) {
            if (i > max_reach) {
                return false;
            }
            max_reach = Math.max(max_reach, i + nums[i]);
        }
        return max_reach >= nums.length - 1;
    }

在这里插入图片描述

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

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

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

相关文章

2023禁用谷歌浏览器自动更新最好的解决方式

&#x1f9c1;介绍 对于一些用户来说&#xff0c;Chrome 浏览器的自动更新功能可能会带来一些不便或者不必要的麻烦。 本文将介绍如何使用批处理脚本来停止和禁用 Chrome 的自动更新功能&#xff0c;确保不再进行后台网络操作。文章将详细说明代码的编写和执行步骤。 &#…

FastReport 2023.1.3 基于源码原版本升级 Delphi 12 c++ builder 12

复制 RAD Studio 10.4 为RAD Studio 12 dpk 文本打开 28 改成 29 Build -> install就可以了

福州等保测评机构有几家?正规吗?在哪里?

最近看到不少福州小伙伴在问&#xff0c;福州等保测评机构有几家&#xff1f;正规吗&#xff1f;在哪里&#xff1f;这里小编就给大家来详细解答一下&#xff0c;仅供参考哦&#xff01; 福州等保测评机构有几家&#xff1f;正规吗&#xff1f;在哪里&#xff1f; 【回答】&…

windows系统自动更新中断电导致系统无法开启

windows系统自动更新中断电导致系统无法开启 现象原因解决进入bios拆机更新系统重新安装内存条 现象 前一天晚上电脑出现合上之后风扇继续转的现象&#xff0c;拔掉电源后&#xff0c;第二天开不了机。现象为按压电源键&#xff0c;电源键和充电指示灯亮一次后熄灭&#xff0c…

docker 构建并运行 python项目

此处不重述docker安装及基本命令&#xff0c;可参考另一篇文章centos7 安装 docker_centos7 docker network rm-CSDN博客文章浏览阅读111次。1、 1.1 docker 官网 Empowering App Development for Developers | DockerLearn how Docker helps developers bring their ideas to …

SSM 线上知识竞赛系统-计算机毕设 附源码 27170

SSM线上知识竞赛系统 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化&#xff0c;电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流&#xff0c;人类发展的历史正进入一个新时代。在现实运用中&#…

从哪些方面做好电商系统的网站建设?

电子商务的迅猛发展&#xff0c;建设一款成功的电商系统网站成为企业取得竞争优势的重要一环。下面将从用户体验、网站设计、安全性和性能优化等方面&#xff0c;介绍如何打造一款优秀的电商系统网站。 一、用户体验 一款成功的电商系统网站必须注重用户体验&#xff0c;确保用…

Note1: 算法的时间复杂度和空间复杂度

目录 ---前言 1.算法效率 1.1 算法的复杂度 2.时间复杂度 2.1 时间复杂度的概念 2.2 大O的渐进表示法 2.3常见时间复杂度计算举例 2.3.1 示例1 2.3.2 示例2 2.3.3 示例3 2.3.4 示例4 2.3.5 示例5 2.3.6 示例6 2.3.7 示例7 2.3.8 示例8 3.空间复杂度 3.1 示例1 …

安装软件时msvcp140.dll丢失的解决方法,快速解决dll问题

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“msvcp140.dll丢失”。msvcp140.dll是微软Visual C 2015运行库中的一个组件&#xff0c;它包含了许多用于支持C编程语言的函数和类。当我们在使用某些需要依赖这个运行库的程序时&#xff0…

打卡系统有什么用?如何通过日常管理系统提高企业员工的效率?

在当今快速发展的时代&#xff0c;职工的行动管理已成为机构单位工作中至关重要的一环。如何更好地了解和掌握职工的日程安排和行动轨迹&#xff0c;成为了一个值得探讨的问题。为了解决这一难题&#xff0c;“的修”打卡系统应运而生&#xff0c;它为我们提供了一个全面而高效…

跨境卖家必备的自养号测评技巧:提升商品评论数量和销量

无论是亚马逊还是拼多多Temu、shopee、Lazada、wish、速卖通、煤炉、敦煌、独立站、雅虎、eBay、TikTok、Newegg、Allegro、乐天、美客多、阿里国际、沃尔玛、OZON、Joom、Facebook、daraz、Cdiscount、Kaufland、DARTY、MANO、Shein、Jumia、eMAG、Fnac、Onbuy、Fruugo、等跨境…

在线判断代理是否生效

在线网站 http://www.zhizhi365.com/ 数据

日料西餐厅餐品预约小程序的作用是什么

日料店西餐厅客源也不少&#xff0c;对经营者来说&#xff0c;高市场需求度的同时也面临一些痛点&#xff1a; 1、品牌宣传拓客难 日料/西餐厅虽然已经存在多年&#xff0c;但依然有大量用户并没有消费过&#xff0c;因此这需要商家不断拓展品牌实力及餐品呈现吸引客户前往&a…

微信管理系统:让企业更轻松地管理客户和员工资源

在日常工作中&#xff0c;我们经常遇到以下问题&#xff1a; ①由于微信号众多&#xff0c;需要频繁地在不同设备之间切换&#xff0c;这严重影响了工作效率。 ②尽管我一直努力回复客户的消息&#xff0c;但有时还是无法做到即时回复&#xff0c;这给客户带来了一些不便。 …

浙大软院2024届推免录取名单及分析

名单 分析 浙大软院共录取电子信息专业推免生219人&#xff0c;机械专业推免生20人 小Tips&#xff1a;浙大软院夏令营考核时间比较长&#xff0c;并且不发offer&#xff0c;但是如果夏令营能拿到优营能够直入预推免哦&#xff0c;以浙大为梦校并且背景不是特别好的同学可以多…

C# OpenCvSharp 环形文字处理 直角坐标与极坐标转换

效果1 效果2 项目 代码 using OpenCvSharp; using System; using System.Drawing; using System.Text; using System.Windows.Forms;namespace OpenCvSharp_Demo {public partial class frmMain : Form{public frmMain(){InitializeComponent();}string fileFilter "*.*…

K8S篇之K8S详解

一、K8S简介 k8s全称kubernetes&#xff0c;是为容器服务而生的一个可移植容器的编排管理工具。k8s目前已经主导了云业务流程&#xff0c;推动了微服务架构等热门技术的普及和落地。 k8s是自动化容器操作的开源平台。这些容器操作包括&#xff1a;部署、调度和节点集群间扩展。…

深入OpenCV Android应用开发

前言 OpenCV是Open Source Computer Vision library(开源的计算机视觉库)的缩写。它是使用最广泛的计算机视觉库。Opencv是计算机视觉领域常用的操作函数的集合&#xff0c;其自身由C/C编写而成&#xff0c;同时也提供了对Python、Java以及任意JVM语言的封装。考虑到大部分And…

你在React项目中是如何使用Redux的? 项目结构是如何划分的?

一、背景 在前面文章了解中&#xff0c;我们了解到redux是用于数据状态管理&#xff0c;而react是一个视图层面的库 如果将两者连接在一起&#xff0c;可以使用官方推荐react-redux库&#xff0c;其具有高效且灵活的特性 react-redux将组件分成&#xff1a; 容器组件&#…

【带头学C++】----- 三、指针章 ---- 3.11 补充重要指针知识(二,拓展基础知识)

1.指针与函数 1.1指针变量作为函数的参数 如果想在函数内部修改外部变量的值&#xff0c;可以将外部变量的地址传递给函数。 在C/C中&#xff0c;函数的参数传递方式有值传递&#xff08;传递变量的副本&#xff09;和引用传递&#xff08;传递变量的地址&#xff09;。如果希…