力扣hot100速览(2)

news2024/12/27 13:37:59

全排列:

原理:

经典回溯。回溯的原理:用一个数组来记录路径,每次递归,都访问没访问到的元素(怎么访问:当然是遍历),访问完弹出上一步。

解:

同原理,在路径访问后,判断该路径是否符合条件即可。

子集:

原理:

经典回溯

解:

没啥说的,符合条件的path加进去就好了

电话号码的字母组合:

原理:

相当于把排列组合的原始数组变成了电话号上的字母,只需要取出数字对应的字母,然后把字母排列组合就好。

解:

同原理。

组合总和:

原理:

写出所有排列组合,判断是否符合条件即可。但可以剪枝,比如target-当前值<0的。

解:

同原理。

括号生成:

原理:

其实也是枚举所有排列组合。但需要剪枝,左括号平衡(数量相等),所以可以传递左右括号的数量,然后判断加左还是加右。

解:

加完左括号弹出左括号加右括号,这种,然后加剪枝判断是否需要加左右括号即可。

单词搜索:

原理:

对四个方向进行递归查找(很像岛屿的数量这道题,但是这个是需要回溯把走过的路径记录、比较、回溯抹除路径)。

解:

同原理。

分割回文串:

原理:

一眼盯真,鉴定为纯纯的得到所有“,”的排列组合,然后判断是不是回文。但是这个只是最初版本,也就是说,遍历所有可能分割,然后判断是不是回文。

解:

遍历谁都会,但需要剪枝,我们在递归前判断是否是回文,就减少了一次递归(所以非剪枝版本就是在for循环外面去判断是否是回文)。策略是:每次从起点left一个一个、依次判断分割后是不是回文。如果是,就可以继续分割。不是就不分割。

N皇后:

原理:

我们从分割回文串,了解到,在for循环内进行判断,就是剪枝。所以,依旧用分割回文串的思想。每次递归遍历一行,给这一行的不同位置放上皇后,判断是否成立。成立的条件,就是列、和对角线上没有其他皇后。

解:

同原理。

搜索插入位置:

原理:

没得说,二分查找。

解:

同原理。

搜索二维矩阵:

原理:

没啥说的,二分秒了。

在排序数组中查找元素的第一个和最后一个位置:

原理:

普通二分改进版,在mid==target的时候,检查前面\后面是否也有target,有的话就收缩,没有就返回。

解:

同原理。

【忍者算法】LeetCode 34 在排序数组中查找元素的第一个和最后一个位置_哔哩哔哩_bilibili

搜索旋转排序数组:

原理:

只判断有序的一边,如果没在有序的一边,就在另一边。怎么判断有序:中点比最左大,左边就有序,中点比左边小左边就无序。然后判断target在左还是在右

解:

同原理。

寻找旋转排序数组中的最小值:

原理:

搜索旋转排序数组那个,结果在有序的里,而这个,结果则是在无序的里,所以往上一题相反的方向二分,即可得到结果。

寻找两个正数数组的中位数:

原理:

4. 寻找两个正序数组的中位数 Median of Two Sorted Arrays 【LeetCode 力扣官方题解】_哔哩哔哩_bilibili

这个不懂??有点难

有效括号:

原理:

栈的经典题目,左括号压栈,右括号出栈对比。

最小栈:

原理:

两个栈实现,这个第一次做可能有点儿懵,就是一个栈存当前最小值,一个栈存当前值。弹就一起弹,压就压当前值和栈顶的最小值。

字符串解码:

原理:

由内而外展开的过程。对应了栈的先进后出。说白了就是栈去解递归(模拟递归)保存当前状态,进入下一状态。

解:

解决展开问题,遇到左括号说明内部需要展开,记录展开的起点和次数。遇到右括号说明内部展开完了,只要从记录的起点展开(复制)展开次数,就可以得出结果。

每日温度:

原理:

单调栈,[数据结构]——单调栈-CSDN博客,

作用:找第一个比ta大的元素。

解:

单调栈,当前元素小于栈顶就入栈,大于栈顶就把比它小的出栈,并给小的赋值。

柱状图中最大的矩形:

原理:

还是单调栈,单调递增栈,递增栈的每种组合:如图:

当遍历到2,需要弹出5,6时计算红色和黄色的面积(当前弹出块的高度*到2的距离)。

还要注意:在最后可能栈里还剩下几个元素,特殊处理依次弹出计算面积即可(注意最后一个,即最小元素,会横向铺满整个的,如1,蓝色框框)

解:

同原理,细节蛮多的,未来再说,先把思路打通

数组中第k个最大元素:

原理:

可以用堆秒了,但是如果想更快,就要用快排思想进行折半。

解:

没啥,先用大顶堆秒了。

前k个高频元素:

原理:

依旧是大顶堆,先算出现次数,然后根据出现次数堆排即可。

数据流的中位数:

LeetCode 295|数据流的中位数|大顶堆|小顶堆|经典困难题_哔哩哔哩_bilibili

原理:

虽然上面比我说的清楚,但是原理大概就是,两个堆,一个大顶堆,维护前半部分的数;一个小顶堆,维护后半部分的数。加入新的数时,大的放小顶堆,小的放大顶堆,如果放入小顶堆,那么小顶堆弹出堆顶元素插入大顶堆。放入大顶堆反之,以大小顶堆的堆顶元素,维护中位数。

买卖股票的最佳时机:

原理:

买卖股票的最佳时机【基础算法精讲 21】_哔哩哔哩_bilibili

把当前状态做一个状态机。然后根据状态机写递推公式即可。

解:

dp[i][0]:第i天未持有的状态:如果买入,-price,因为只买入一次,只需要记录最小的一次买入;什么都不做就等于dp[i-1][0];

dp[i][1]:第i天持有股票的状态:如果卖出,+price,需要记录上一步买入的花了多少,所以要加上dp[i-1][0];什么都不做就等于dp[i-1][1];

跳跃游戏:

原理:

遍历,每次遍历到一个数,找出当前覆盖的最大范围。如果遍历的索引超出最大范围了,说明跳不到当前索引的位置。

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

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

相关文章

动手学深度学习8.4. 循环神经网络-笔记练习(PyTorch)

本节课程地址&#xff1a;54 循环神经网络 RNN【动手学深度学习v2】_哔哩哔哩_bilibili 本节教材地址&#xff1a;8.4. 循环神经网络 — 动手学深度学习 2.0.0 documentation (d2l.ai) 本节开源代码&#xff1a;...>d2l-zh>pytorch>chapter_multilayer-perceptrons&…

电池的电-热-寿命模型是什么?

一、背景 电池的电-热-寿命模型在工程领域具有重要意义&#xff0c;它是一种描述电池性能、温度与使用寿命之间相互关系的复杂模型。具体工程意义体现在以下几个方面&#xff1a; 性能预测&#xff1a; 通过电-热-寿命模型&#xff0c;工程师可以预测在不同负载条件下电池的…

FreeRTOS基础入门——FreeRTOS优先级翻转(十五)

个人名片&#xff1a; &#x1f393;作者简介&#xff1a;嵌入式领域优质创作者&#x1f310;个人主页&#xff1a;妄北y &#x1f4de;个人QQ&#xff1a;2061314755 &#x1f48c;个人邮箱&#xff1a;[mailto:2061314755qq.com] &#x1f4f1;个人微信&#xff1a;Vir2025WB…

【重磅升级】积木报表 v1.8.1 版本发布,支持填报功能

项目介绍 一款免费的数据可视化报表工具&#xff0c;含报表和大屏设计&#xff0c;像搭建积木一样在线设计报表&#xff01;功能涵盖&#xff0c;数据报表、打印设计、图表报表、大屏设计等&#xff01; Web 版报表设计器&#xff0c;类似于excel操作风格&#xff0c;通过拖拽完…

[数据结构] 开散列法 闭散列法 模拟实现哈希结构

标题&#xff1a;[数据结构] 开散列法 && 闭散列法 模拟实现哈希结构 个人主页&#xff1a;水墨不写bug 目录 一、闭散列法 核心逻辑的解决 i、为什么要设置位置状态&#xff1f;&#xff08;伪删除法的使用&#xff09; ii、哈希函数的设计 接口的实现 1、插入&a…

SD三分钟入门!秋叶大佬24年8月最新的Stable Diffusion整合包V4.9.7来了~

1 什么是 Stable Diffusion&#xff1f; Stable Diffusion&#xff08;简称SD&#xff09;是一种生成式人工智能技术&#xff0c;于2022年推出。它主要用于根据文本描述生成精细图像&#xff0c;同时也可应用于其他任务&#xff0c;如图像修补、扩展&#xff0c;以及在文本提…

圣诞节:白酒与西式料理的异国风情

随着冬日的脚步渐近&#xff0c;圣诞的钟声即将敲响。在这个充满异国情调和温馨氛围的节日里&#xff0c;一场中西合璧的美食盛宴悄然上演。豪迈白酒&#xff08;HOMANLISM&#xff09;与西式料理的碰撞&#xff0c;不仅为圣诞餐桌增添了几分不同的韵味&#xff0c;更让人们在这…

标准库_string的代码实现

前言 string不属于stl&#xff0c;string比stl出现的早的多&#xff0c;所以string属于标准库&#xff0c;不属于stl 大家可以在cplusplus网站看string的内容 string的六个构造函数 构造函数 在写构造函数的时候不管传的字符串里面有没有字符&#xff0c;都必须至少要new c…

zerojs前端面试题系列--vue3篇(4)

1. Vue3中的可选链运算符&#xff08;?.&#xff09;和空值合并运算符&#xff08;??&#xff09;是什么&#xff1f;它们有什么作用&#xff1f; 可选链运算符&#xff08;?.&#xff09;和空值合并运算符&#xff08;??&#xff09;是Vue 3.x中新增的两种运算符。 可选…

点餐小程序实战教程04变量定义和初始化

目录 1 什么是变量2 如何创建变量3 具体该选择什么类型4 变量的初始化5 await/async6 调试我们的程序7 运行我们的代码总结 日常碰到的最多的一句话是&#xff0c;我看到代码就发憷&#xff0c;我一点基础也没有。那低代码开发需要掌握什么样的基础&#xff0c;怎么才算是掌握了…

图像分割像素三分类效果

pets_fg 数据集 训练集: avg_score: 0.8818 - dice: 0.9138 - iou: 0.8520 - loss: 0.1116 - mae: 0.6862 训练集掩码效果 avg_score: 0.8415 - dice: 0.8798 - iou: 0.8065 - loss: 0.1601 - mae: 0.6882 验证集效果展示

提前锁定!2024云栖大会大数据AI参会攻略来啦

2024年9月19日~9月21日&#xff0c;一年一度的云栖大会又要与大家见面了。一文尽览大数据AI精彩预告&#xff0c;赶紧收藏吧&#xff01; 9月20日上午 10:45~11:25 阿里云智能集团副总裁、计算平台事业部负责人汪军华带来大数据AI平台年度发布。揭晓全新的 OpenLake 方案如何为…

力扣题解2181

大家好&#xff0c;欢迎来到无限大的频道&#xff0c;有些日子没更新了&#xff08;其实是因为懒&#xff09; 言归正传&#xff0c;开始分享今日的题解。 题目描述&#xff1a; 合并零之间的节点 给一个链表的头节点 head &#xff0c;该链表包含由 0 分隔开的一连串整数。…

七种方法加密图纸!2024企业要如何对CAD图纸进行加密?

随着企业信息化的发展&#xff0c;CAD图纸作为企业的核心数据之一&#xff0c;其安全性变得尤为重要。如何有效加密CAD图纸&#xff0c;以防止数据泄露&#xff0c;是众多企业关注的重点问题。本文将介绍2024年企业加密CAD图纸的七种有效方法&#xff0c;帮助企业提升图纸安全性…

记一次高版本view-design的组件迁移到自身项目的低版本

背景 npm i -S view-design当前老项目使用view-design这个组件库&#xff0c;但是当我们去官网查看该组件库最新版本&#xff0c;竟然发现没有博主想用的image/ImagePreivew这两个基础组件 说实话&#xff0c;有点离谱了哈&#xff01;&#xff01; 自己造轮子&#xff1f; …

软考基础知识之网络工程

目录 前言 网络工程 网络规划 1、网络需求分析 2、可行性研究 3、对现有网络的分析与描述 网络设计 1、网络逻辑结构设计 2、网络物理结构设计 3、 分层设计 网络实施 1、工程实施计划 2、网络设备到货验收 3、设备安装 4、系统测试 5、系统试运行 6、用户培训…

利用熵权法进行数值评分计算——算法过程

1、概述 在软件系统中&#xff0c;研发人员常常遇上需要对系统内的某种行为/模型进行评分的情况。例如根据系统的各种漏洞情况对系统安全性进行评分、根据业务员最近操作系统的情况对业务员工作状态进行打分等等。显然研发人员了解一种或者几种标准评分算法是非常有利于开展研…

mp4转文字怎么快速转换?5个软件教你快速进行视频提取文字

mp4转文字怎么快速转换&#xff1f;5个软件教你快速进行视频提取文字 将MP4视频转换为文字是一项常见的需求&#xff0c;尤其是在需要将视频中的对话、演讲或字幕转为文本时。通过使用AI转录软件&#xff0c;你可以快速将视频中的音频内容提取并转换为文字。以下介绍5款可以帮…

一个数组向左移动i位(学会分析问题,找出规律,不要小看任何一个小程序;小程序都是实现大的功能的基础--体现问题分解的思想)

学会分析问题&#xff0c;找出规律&#xff1b; 不要小看任何一个小程序&#xff0c;小程序都是实现大的功能的基础--体现问题分解的思想&#xff09; 思想火花--好算法是反复努力和重新修正的结果 解法1:先将数组中的前i个元素存放在一个临时数组中,再将余下的n一i个元素左…

黑马点评15——分布式缓存-Redis分片集群

文章目录 搭建分片集群散列插槽集群伸缩故障转移RedisTemplate访问分片集群 搭建分片集群 参考我前面的文章&#xff1a;单机部署Redis集群 散列插槽 集群伸缩 添加新的节点后要重新分配插槽, 故障转移 这是自动的故障转移&#xff0c;但有时候需要手动的故障转移——比如更…