LeetCode刷题---简单组(四)

Leetcode-How-What 力扣Leetcode刷题指南 Leetcode-How-What 力扣Leetcode刷题指南 About the way how to use Leetcode wisely for preparing the interview and the solutions to some Leetcode problems’. 怎样为准备面试机智聪明的刷题(高效刷题)以及一些题目的题解。 同 github 链接: https:/... 阅读详情

🍒题目一 27. 移除元素

请添加图片描述
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。

不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

说明:

为什么返回数值是整数,但输出的答案是数组呢?

请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。

你可以想象内部操作如下:

// nums 是以“引用”方式传递的。也就是说,不对实参作任何拷贝
int len = removeElement(nums, val);

// 在函数里修改输入数组对于调用者是可见的。
// 根据你的函数返回的长度, 它会打印出数组中 该长度范围内 的所有元素。
for (int i = 0; i < len; i++) {
print(nums[i]);
}

示例 1:

输入:nums = [3,2,2,3], val = 3
输出:2, nums = [2,2]
解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。
示例 2:

输入:nums = [0,1,2,2,3,0,4,2], val = 2
输出:5, nums = [0,1,4,0,3]
解释:函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。注意这五个元素可为任意顺序。你不需要考虑数组中超出新长度后面的元素。


🍒解法一

class Solution:
    def removeElement(self, nums, val):
        l = r = 0
        for r, x in enumerate(nums):
            if x != val:
                nums[l] = x
                l += 1
        return l 

来自一位大佬的解答,本题主要使用了enumerate函数,之后使用下标r来进行索引判断与val相不相等
每次的判断可能会对长度l做出+1操作,最后返回的是l也就是长度了。


🍒题目二 28. 找出字符串中第一个匹配项的下标

给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。

示例 1:

输入:haystack = “sadbutsad”, needle = “sad”
输出:0
解释:“sad” 在下标 0 和 6 处匹配。
第一个匹配项的下标是 0 ,所以返回 0 。
示例 2:

输入:haystack = “leetcode”, needle = “leeto”
输出:-1
解释:“leeto” 没有在 “leetcode” 中出现,所以返回 -1 。

提示:

1 <= haystack.length, needle.length <= 104
haystack 和 needle 仅由小写英文字符组成


🍒解法一

class Solution(object):
    def strStr(self, haystack, needle):
        """
        :type haystack: str
        :type needle: str
        :rtype: int
        """
        for i in range(0,len(haystack)-len(needle)+1):
            if haystack[i:i+len(needle)] == needle:
                return i 
        return -1

官方的做法,很妙

方法一:暴力匹配
思路及算法
我们可以让字符串 needle 与字符串 haystack 的所有长度为 m 的子串均匹配一次。
为了减少不必要的匹配,我们每次匹配失败即立刻停止当前子串的匹配,对下一个子串继续匹配。如果当前子串匹配成功,我们返回当前子串的开始位置即可。如果所有子串都匹配失败,则返回 −1。

在这里插入图片描述

🍒题目三 35. 搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

请必须使用时间复杂度为 O(log n) 的算法。

示例 1:

输入: nums = [1,3,5,6], target = 5
输出: 2
示例 2:

输入: nums = [1,3,5,6], target = 2
输出: 1
示例 3:

输入: nums = [1,3,5,6], target = 7
输出: 4

🍒解法一

class Solution:
  def searchInsert(self, nums, target):
      head = 0
      n = len(nums)
      tail = n -1 
      while head <= tail:
          tar = nums[(tail + head)//2]
          if tar > target:
              tail = (tail + head)// 2 -1
          elif tar < target:
              head = (tail + head)// 2 +1 
          else:
              return (tail + head)//2 
      return  (tail + head)//2 +1

某位大佬的实现的二分法


请添加图片描述

挑战与创造都是很痛苦的,但是很充实。

LeetCode刷题攻略 应届生面试算法就考个数组 链表 二叉树 矩阵 数组变着法子考你排序 查询 指针 位运算 链表变着法子考你指针 最多再考个哈希 二叉树变着法子考用递归和栈前中后遍历 最多加上回溯 矩阵的话就是知道起点的路径查询和不知道起点的路径查询 掌握了这些 面大厂就比较轻松了 其实和学历技术关系也不大 大部分人先死到想都不敢想上了。 据了解,LeetCode 是一个非常棒的 OJ(Online Judge)平台,收集了许多公司的面试题目。相对其他 OJ 平台而言,有着下面的几个优点: 题目全部来自业内大公司的真. 阅读详情

相关推荐

LeetCode刷题经验帖总结

目录一、大家都是如何刷 LeetCode 的?二、LeetCode大佬经验 一、大家都是如何刷 LeetCode 的? 大家都是如何刷 LeetCode 的? 建议优先按题目tag刷题 边做边根据题目总结算法模板和套路 前300道,尽量能刷两遍,大部分题目代码量控制在50行以内,能够bug free且快速地写出常用的代码块(比如union find, dfs/bfs几个变种, binary search, partition等等) 尽量选用更简单的数据结构,缩短运行时间,化繁为简。能用vec

qq_38025771的博客 1781

力扣(LeetCode)怎么刷题,以排序算法为例

掌握 LeetCode 刷题方法再开始刷题,属于磨刀不误砍柴工。掌握正确方法是非常重要的。 如果你在刷题的时候发现怎么也写不出来,别担心,这是正常的。如果你还发现,之前明明刷过的题,过段时间再做的时候,自己还是不会。别担心,这也是正常的。 在这我分享一下我的刷题经验,希望对你有帮助。如果你时间比较紧迫,为了找工作而刷题,我建议你先刷热门推荐,一共两百多道题。 在 LeetCode中文版 页面的右侧。先刷热题 HOT 100,再刷精选 TOP 面试题,之后刷其他的题。 如果你时间比较充裕,那我建议

Allenzyg的博客 1万+

1024,给大家谈谈如何搞透刷题 玩转力扣!

前言 大家好,我是bigsai,好久不见!今天1024,祝大家程序员节快乐,写代码永没bug!今天就给各位小伙伴分享我自己刷题力扣的一些小方法,不一定很有用但是可以参考,祝你更高效的变强! 最近在一些群聊、私聊中遇到很多的一个问题就是:刷题,大家也都重视到算法刷题对冲击大厂的重要性,越来越多的人开始卷起来了! 但有的人是这样卷起来的,卷的自己都懵了。 今天,我就给偏初学者的各种问题谈谈个人刷力扣这方面的观点。 刷哪些题? 大家刷力扣,目标肯定就是为了冲击大厂的面试笔试,小部分就是为了坚持刷题保持感觉提升

bigsai 4293

力扣刷题之准备工作

在刷算法题的过程中进行总结是非常重要的,它可以帮助你梳理思路、加深理解、记录学习成果,并提升解题能力。每天回顾:在每天结束时,对当天解决的题目进行回顾。检查解决方案的正确性,并思考是否有更优化的方法。记录下遇到的难点和解决方法,以及学到的新知识点和技巧。整理这些笔记并归档到适当的分类中,以便今后参考。每周汇总:在每周末或开始新一周时进行总结。复习过去一周解决的题目,分析解题过程中使用的算法和数据结构。总结你学到的关键知识点、解题技巧和模式,并将其整理到博客中。

weixin_47040031的博客 9754

SquareLine Studio汉化版安装激活全攻略:LVGL嵌入式UI设计从入门到出代码

嵌入式GUI开发中,LVGL作为轻量级开源图形库,广泛应用于STM32、ESP32等MCU平台。可视化设计器通过拖拽生成LVGL代码,大幅提升UI开发效率。SquareLine Studio正是这类工具的代表,支持界面设计、事件绑定与代码导出。其安装、汉化与激活是初学者常见门槛,尤其涉及LVGL版本匹配、字体配置及FreeRTOS移植等关键环节。本文围绕汉化版安装、一个月免费激活码使用及最小可用流程展开,帮助开发者快速上手LVGL界面设计,规避常见环境与集成问题。

weixin_29189987的博客 421

阿里云大模型ACP认证模拟考试(二)

摘要:在阿里云大模型高级工程师 ACP 认证暂无真题题库的现状下,模拟题具有重要意义。其依照真实考试设计,涵盖题型、题量与分值分布,助力考生熟悉考试框架,合理分配答题时间精力,提升效率。同时,模拟题紧扣官方课程,能帮助考生精准定位知识盲点,如大模型架构原理和通义千问应用实践等重点内容,以便针对性完善知识体系。此外,通过练习模拟题,考生可掌握不同题型的解题思维与技巧,快速洞察复杂题目本质,提高答题准确率。

davidkorhenn的博客 2077

LeetCode刷题顺序

简介 是不是有许多小伙伴在刷力扣的时候感觉无从下手?从头按顺序开始刷的童鞋们可能会比较有感触,为什么才第四题就感觉很难了?没关系,本文将对力扣的 1-700 题中不需要会员的数据结构与算法题目(数据库与 shell 除外)进行分类,并推荐一个刷题的顺序。 完全零基础可以刷题吗? 不能,至少要基本掌握一门计算机语言的语法。但现在在网上随便搜一下就能搜到许多关于计算机语言的教程。当然,最好还是上一下正规的课程。 刷题顺序很重要吗? 重要。按照题目类别结构化地刷题的速度不仅更快,而且可以在刷完一类题之后进行总

qq_42548880的博客 8906

火星遥感数据的获取与处理工具安装详解

有关火星遥感影像数据的那些事...

FengYingLuo的博客 5574

Leetcode刷题修炼手册

我的机器学习教程「美团」算法工程师带你入门机器学习 已经开始更新了,欢迎大家订阅~ 任何关于算法、编程、AI行业知识或博客内容的问题,可以随时扫码关注公众号「图灵的猫」,加入”学习小组“,沙雕博主在线答疑~此外,公众号内还有更多AI、算法、编程和大数据知识分享,以及免费的SSR节点和学习资料。其他平台(知乎/B站)也是同名「图灵的猫」,不要迷路哦~ “跟着...

Machine Learning with Tutors 5万+

ESP32 驱动 SYN6288 语音合成:Arduino IDE 下实现中文数字混合文本的智能播报

本文详细介绍了如何在Arduino IDE环境下使用ESP32驱动SYN6288语音合成模块,实现中文数字混合文本的智能播报。通过硬件选型、开发环境搭建、编码转换原理、命令帧构造及串口通信实战等步骤,帮助开发者快速掌握语音播报技术。文章还提供了混合文本处理技巧和常见问题排查方法,适合智能硬件开发者参考。

weixin_42553471的博客 448

面向边缘计算的YOLOv12模型剪枝-蒸馏联合优化实战教程**

这套剪枝-蒸馏联合方案的优势在于其系统性和可靠性。它不是单一的技巧,而是一套完整的工程流程,确保了从研发到部署的无缝衔接。

FJN110的博客 159

LeetCode刷题指南

力扣,作为一个国内外的程序员都用作准备面试的刷题网站,对想要阅读这篇指南的你应该都不陌生。当你想要借助力扣刷题,提升代码能力、在面试中脱颖而出,却不知从何入手,这篇文章可以作为你的入门指南。

airhaohan 的博客 8990

2026华为OD面试题029:勇攀数字高峰

在给定的数字地形图里寻找登山路径,数字代表当前位置的海拔高度。要求从最低海拔出发,不断攀登,最终到达最高山峰。地图保证最低海拔和最高山峰都只有一个。 登山规则: - 路径上的海拔必须严格递增 - 只能向上下左右 4 个方向移动 - 路径必须从最低海拔开始,到最高海拔结束 - 每个地点只能走一次 - 每一步的攀登高度差必须大于 0,且不超过指定值 `K` 输出满足条件的登山路径的数量。

琅嬛福地 119

刷题新手必看!如何简单快速地入坑leetcode!

那么我们在这里会分为三个阶段:新手——入门——老手。

weixin_71529728的博客 1万+

开源的预测气象大模型与数据获取/可视化

「开源气象大模型与数据获取指南」摘要: 当前主流AI气象模型(如ECMWF的AIFS、DeepMind的GraphCast、华为Pangu等)主要基于ERA5/HRES数据训练。开源资源可通过ECMWF OpenData、GitHub仓库及Google Cloud获取,其中AIFS数据采用CCBY-4.0许可可商用,其他模型多有限制性许可。典型应用流程包括:1)通过Python包获取实时预报数据;2)加载预训练权重进行推理;3)使用xarray/cartopy或Zarr进行可视化。训练数据可从CDS下载ER

专注AI大模型,软件混淆,授权 795

R语言中的混淆矩阵(Confusion Matrix)是一种常用的评估多分类模型性能的工具

除了准确率,混淆矩阵还提供了其他有用的指标,如灵敏度(Sensitivity)、特异度(Specificity)、精确度(Precision)和召回率(Recall)。混淆矩阵通过比较模型预测结果与实际标签的一致性,帮助我们了解模型的分类准确性和错误类型。此外,混淆矩阵还提供了各种错误类型的统计信息,如假阳性(False Positive)和假阴性(False Negative)等。通过混淆矩阵,我们可以了解模型的整体性能和错误类型,从而对模型进行评估和改进。最后,为了更好地理解混淆矩阵的结果,可以使用。

HackSquad的博客 972

【python力扣刷题经验分享】——从初入力扣到上分变强!!!

在力扣的异世界里不断升级!

2301_80269840的博客 6409

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Leetcode刷题指南

参考:https://blog.youkuaiyun.com/qq_39521554/article/details/79160815   二、刷题方法 方法一:按照题目出现频率刷题 顺序参考文章最后的部分 方法二:标签法 按照网站给大家排列的不同tags,起到模块化的复习和学习作用。举个例子:比如复习链表的内容,就选Linked List这部分的23个题目。刷完之后可以再总结一下常用的方法和数据结...

mmc2015的专栏 1万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

如何用vs code上的力扣插件刷题(Window和Mac)

最近在官网刷题时,写不出来的总是忍不住想看答案,没思考多久就点开题解了😅。加之一直不喜欢它的界面和字体,就尝试着用vs code上的插件了,下面是具体方法。(少看答案,多思考哈)

今天不加班 1万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

力扣(LeetCode)刷题,简单+中等题(第30期)

力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互相提升。

不脱发的程序猿 7599

LeetCode 按照怎样的顺序来刷题比较好?

LeetCode 按照怎样的顺序来刷题比较好? 首先,这个问题是不完整的。问题只问了一半,事情也只能做到一半。我们要看到更深层的需求,比别人多想一点,才能比别人优秀一点。 刷题效果 = 刷题路径 * 刷题方法。 那么这个问题,就可以拆解成两个答题要点: 1)按照怎样的顺序来刷题? 2)刷题的正...

程序员吴师兄的博客 9562

力扣算法刷题顺序

字符串:520、125、14、34、58、344、541、557、151、387、389、383、242、49、451、423、657、551、696、467、535、299、412、506、539、553、537、592、640、38、443、8、13、12、273、165、481、392、524、521、522、66、67、415、43、306、482、6、68、28、686、459、214、5、647。链表:206、203、237、19、430、61、24、92、25、2、445、21、23。

m0_62154035的博客 3831

LeetCode(力扣)数组篇 JAVA刷题详解

是不是有许多小伙伴在刷力扣的时候感觉无从下手?从头按顺序开始刷的童鞋们可能会比较有感触,为什么才第四题就感觉很难了?没关系,本文将对力扣的 1-500 题中不需要会员的数据结构与算法题目(数据库与 shell 除外)进行分类,并推荐一个刷题的顺序。完全零基础可以刷题吗?不能,至少要基本掌握一门计算机语言的语法。但现在在网上随便搜一下就能搜到许多关于计算机语言的教程。当然,最好还是上一下正规的课程。刷题顺序很重要吗?重要。按照题目类别结构化地刷题的速度不仅更快,而且可以在刷完一类题之后进行总结。

weixin_61779644的博客 2538

最高效力扣刷题攻略,没有之一

关于力扣刷题 摆烂 攻略: 最近有很多星球友友不知道怎么样开启正确的刷题姿势,那么由我来带领代价爆肝力扣吧 建议大家可以考虑通过以下几种方式来刷题: 1. 剑指 offer 学习计划 这个是力扣官方推荐的学习计划https://leetcode-cn.com/study-plan/lcof/ 2. 基础知识掌握的差不多了可以考虑,这两个题单; 《LeetCode 热题 HOT 100》https://leetcode-cn.com/problem-list/2cktkvj..

Cool 2万+

刷题心得|这些力扣刷题经验一定不能错过

其他题目答的都差不多,算法题做不出来,拿到 offer 的概率就会下降,部分同学在刷完 1000 多道题后,发现在面试的时候 80% 的算法题都是原题。即使这道题目你做出来了,击败 100% 了,也建议去看看别人的题解,学习更多他人解题的思路,帮助自己打开脑洞,做到 一题多解。还能帮助到更多同学。是 LeetCode 精心整理的算法和数据结构专项练习,每个专项对应一个重要的知识点,并通过一系列相关的题目带大家入门,相对自己零散地选题目来说,更加简单实用,还附有讲解,是入门的不二之选。找工作刷题,登陆 👉。

weixin_44071377的博客 1326

第一次记录自己刷题力扣刷题经历

刷题记录,纯自用,期待能有所收获,欢迎指点

朱一龙哥哥的博客 2200
上一篇: LeetCode刷题---简单组(三)
下一篇: LeetCode刷题---简单组(五)
小馒头学python
小馒头学python 优质创作者: python技术领域 优质创作者: python技术领域
博客等级 码龄4年 1万+粉丝 252原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小馒头学python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值