自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

忍者算法的博客

公众号:忍者算法

  • 博客(115)
  • 收藏
  • 关注

原创 【忍者算法】探秘旋转数组:二分查找的华丽转身!|LeetCode 33「搜索旋转排序数组」

大家好,我是忍者算法。今天要和大家分享一道特别有趣的题目 - LeetCode 33「搜索旋转排序数组」。这道题巧妙地将二分查找与旋转数组结合,是一道考察思维灵活性的经典题目。想象你在看一个圆形时钟,如果把时钟的12点位置当作起点,顺时针记录1到12这些数字,这就是一个有序序列。现在,如果我们把时钟的指针从8点开始读数,到12点,再到7点,实际上就形成了一个"旋转"后的有序序列:8,9,10,11,12,1,2,3,4,5,6,7。这正是我们今天要处理的"旋转排序数组"!题目要求:给你一个整数数组 num

2025-03-30 16:33:35 838

原创 【忍者算法】探秘数组搜索:玩转二分查找的经典应用!|LeetCode 34「在排序数组中查找元素的第一个和最后一个位置」

大家好,我是忍者算法。今天我要和大家分享一道非常经典的二分查找题目 - LeetCode 34「在排序数组中查找元素的第一个和最后一个位置」。这道题看似简单,实则暗藏玄机,是理解二分查找边界处理的绝佳材料。

2025-03-30 16:33:02 317

原创 【忍者算法】图解搜索二维矩阵:一次“数独探险“!|LeetCode 74「搜索二维矩阵」

大家好,我是忍者算法。今天我要带大家攻克一道非常有趣的题目 - LeetCode 74「搜索二维矩阵」。这道题乍看有点唬人,但用我们玩数独游戏的思维去理解,你会发现它其实很优雅!

2025-03-26 22:25:39 221

原创 【忍者算法】探秘二分查找:一道温柔的算法入门题!|LeetCode 35「搜索插入位置」

大家好,我是忍者算法。今天我想和大家聊一道特别适合入门的算法题 - LeetCode 35「搜索插入位置」。这道题虽然看起来简单,但它蕴含了二分查找的精髓,是我最喜欢用来教学的题目之一。

2025-03-26 22:24:11 320

原创 什么是 LLM(大语言模型)?——从直觉到应用的全面解读

在人工智能(AI)和深度学习的世界里,**LLM(Large Language Model,大语言模型)**是一个近几年特别火的概念。ChatGPT、Claude、Gemini、Llama 这些智能对话 AI,都是 LLM 的应用。

2025-03-25 08:30:00 816 1

原创 什么是 Embedding?——从直觉到应用的全面解读

但很多初学者对 Embedding 的理解可能只是:“它是把一个东西转换成数字的方式。” 这种解释虽然没错,但过于简略,难以真正理解 Embedding 的作用。在机器学习和深度学习的世界里,我们经常会听到“Embedding”这个词。我们不再随便用 1、2、3 这些毫无意义的编号,而是用一个“向量”(多个数字的组合)来表示每个学生。假设你在开发一个电影推荐系统,你需要给用户推荐电影。这说明,小明和小红的关系更紧密,而小刚相对不同。计算机只知道 “小明=1,小红=2”,但它。

2025-03-25 08:00:00 970

原创 如何高效寻找神经网络的超参数?——从试错到科学调优

在训练神经网络时,我们经常听到“权重(Weight)”和“偏置(Bias)”这些词。它们是模型内部需要学习的参数,由训练数据决定。网格搜索会浪费很多计算资源在无效的参数组合上,而随机搜索更有可能快速找到好的超参数。如果超参数设置不当,模型可能训练得很慢,甚至根本学不到有用的东西。超参数的选择会影响神经网络的学习速度、模型性能,甚至最终的准确率。这些超参数需要精心调整,否则可能会影响模型的表现。,随着超参数增多,训练次数会指数级增长。,而且可能会错过更好的超参数组合。,可以穷举所有可能的参数组合。

2025-03-21 08:00:00 802

原创 Batch Normalization:让你的神经网络更稳定、更快、更强

如果你在训练一个深度神经网络,不妨试试 Batch Normalization,看看它能给你的模型带来多大的提升!简单来说,BN 就像是帮神经网络**“调节”输入数据,让它们更整齐、更均匀**,这样网络就能更快、更好地学习。就是这样的训练技巧——它能让神经网络学得更快、更稳定,还能减少失误(过拟合)。:BN 需要计算均值、方差,并做额外的调整,对训练速度有一定影响。对于小型、浅层网络,BN 可能不是必须的,但在大多数情况下,它。:层数很多的网络,容易出现梯度问题,用 BN 让训练更稳定。

2025-03-21 07:00:00 1309

原创 深度学习中的“刹车”:正则化如何防止模型“超速”

如果某些“小弟”的“权力”(权重)过大,它们就会过度关注某些特定的特征,导致过拟合。权值衰减就像给这些“小弟”戴上“紧箍咒”,限制它们的“权力”,让它们更加“安分守己”。但是,如果这些猫的图片都是同一品种的,那么当他看到其他品种的猫时,可能就认不出来了。在深度学习中,过拟合指的是模型在训练数据上表现得非常好,但在新的、未见过的数据上表现得很差。正则化就像给模型踩了一脚“刹车”,防止它过度学习训练数据,从而提高模型的泛化能力,让模型在新的数据上也能表现良好。这样的模型在实际应用中是没有价值的。

2025-03-20 00:36:04 257

原创 用比喻直观理解L2正则化

假设你要搬家,你的目标是带走所有重要的物品(类似于让神经网络学到数据中的有用模式)。但如果你带的东西太多(类似于神经网络的权重变得很大),你的行李会太重,不仅搬运困难,还可能带来很多没必要的东西(类似于过拟合——学到了训练数据中的噪声和不重要的细节)。你可以试着想象,如果不给神经网络加 L2 正则化,它可能会过度依赖某些特定的特征,导致它在新数据上表现不佳(过拟合)。这样,神经网络不会太依赖某些特定的权重,而是会让多个权重共同参与决策,从而提高模型的泛化能力,减少过拟合。L2 正则化的核心思想是。

2025-03-20 00:27:41 209

原创 CNN的卷积层和池化层有什么作用?

👉 这里的「3」表示那个地方非常匹配「横线」的特征,越大的值表示越符合这个特征。只需要用「池化后的特征」进行分类,而不用原始的庞大像素数据,从而大幅提高效率!我用具体的例子讲清楚。CNN 可能会用一个。这个卷积核会在图片上。

2025-03-18 09:00:00 356

原创 用最通俗的方式,从头到尾给你讲一遍 CNN。

A:不是「鼻子、眼睛、耳朵」这些具体特征,而是很多「抽象特征数值」,CNN 自动学习哪些特征有助于分类。想象你在看一张马赛克图片,你可以用一个放大镜(卷积核)去扫描图片的局部区域,看有没有关键特征。因为你失去了「位置」的信息,猫的耳朵、鼻子、胡须都变成了无序的数据,你根本不知道谁在哪。这样,我们就能用 CNN 让计算机自动学习图像中的模式,而不用手工提取特征!A:可以,但 CNN 计算量更小,精度更高,更适用于复杂图像任务。👉 经过卷积后,我们得到了一个新的「特征图」,里面的值代表了。

2025-03-18 08:00:00 961

原创 为什么需要强化学习?它解决了什么问题?

如果把监督学习比作“读书学习知识”,那么强化学习更像是“学骑自行车”——没有明确的指导,必须通过不断尝试和失败来掌握技巧。大多数机器学习方法,比如监督学习(深度学习)和无监督学习,主要依赖于。不断决策、试错和优化。

2025-03-17 21:02:03 934

原创 什么是强化学习?

它不像监督学习那样有明确的标签,而是像玩游戏一样,在不断探索和积累经验的过程中学习最优策略。为了建立直觉,我用几个简单的。AlphaGo 通过强化学习。强化学习(RL)本质上是。

2025-03-17 21:01:11 499

原创 为什么 MySQL InnoDB 的 Repeatable Read 可以阻止幻读?

它不仅锁住「已有的数据行」,还会锁住「数据之间的间隙」,从而防止新的插入。只保证「同一事务内,对已存在的数据读到的内容不变」,但。指的是:在同一个事务内,前后两次执行相同的查询,「间隙锁(Gap Lock)」在标准 SQL 定义下,是 InnoDB 的。

2025-03-09 07:00:00 224

原创 为什么 MySQL InnoDB 的 Repeatable Read 可以阻止幻读?

它不仅锁住「已有的数据行」,还会锁住「数据之间的间隙」,从而防止新的插入。只保证「同一事务内,对已存在的数据读到的内容不变」,但。指的是:在同一个事务内,前后两次执行相同的查询,「间隙锁(Gap Lock)」在标准 SQL 定义下,是 InnoDB 的。

2025-03-09 01:03:25 410

原创 一文说清数据库的隔离级别!

数据库的(Isolation Level)决定了多个事务(比如多个用户操作数据库)如何互相影响。我们用的例子来说明,每个级别会影响数据的一致性和并发性能。

2025-03-08 16:43:09 353

原创 InnoDB 的 MVCC 机制详细原理(超级浅显易懂!)

的比喻来讲解 MySQL InnoDB 的 MVCC(多版本并发控制,Multi-Version Concurrency Control)。想象你和朋友们在公司里共享一个 Excel 文件(数据库),你们可以同时编辑,但由于没有 MVCC,在 InnoDB 里,每行数据都带有。

2025-03-08 16:42:20 543

原创 在 Linux 下,服务器如何知道某个 TCP 连接来了消息? 这就涉及 IO 事件通知机制!

你用高科技 GPS 追踪器,每道菜都装上一个传感器,你打电话问外卖员“饭好了吗?”,如果外卖还没送到,所以,在写高性能 HTTP 服务器时,你每秒钟打一次电话问“饭好了吗?,一直循环到饭做好。

2025-03-07 00:47:26 364

原创 一文说清socket的本质!

你可以像读写文件一样对 socket 进行操作,比如。,你会发现 socket 其实就是一个特殊的文件。这就是 socket 的本质!你可以想象它是一个“在 Linux 里,所有东西都可以看作是。从编程的角度来看,socket 其实就是。在 Linux 里,socket 主要用。,但它的背后是网络数据,而不是磁盘数据。”,让进程能像读写文件一样收发网络数据。(套接字)到底是什么呢?这些文件操作进行交互。,所有东西都可以通过。在 Linux 里,

2025-03-07 00:44:50 231

原创 【忍者算法】图解N皇后:用“象棋战术“巧解经典难题!|LeetCode 51「N皇后」

大家好,我是忍者算法。今天要挑战的是一道算法界的"皇后级"难题 - LeetCode 51「N皇后」。这道题困扰了无数程序员,但今天我们用象棋玩家的思维,一步步将它拆解成简单易懂的小问题!

2025-03-06 00:30:24 329

原创 【忍者算法】图解分割回文串:用“积木游戏“巧解难题!|LeetCode 131「分割回文串」

大家好,我是忍者算法。今天我们来挑战一道非常有趣的题目 - LeetCode 131「分割回文串」。这道题乍看有点复杂,但用我们小时候玩积木的思维来理解,你会发现它其实非常有意思!

2025-03-06 00:29:47 377

原创 【忍者算法】图解单词搜索:用“蚂蚁觅食“理论一招制胜!|LeetCode 79「单词搜索」

大家好,我是忍者算法。今天我们来挑战一道非常有意思的题目 - LeetCode 79「单词搜索」。这道题不少同学第一次见时都会有点懵,但别担心,跟着我用"蚂蚁觅食"的思路,保证让你豁然开朗!

2025-03-05 01:23:22 1016

原创 面试必备:分布式锁的实现方式(Redis vs. Zookeeper)

其中的 Znode 类似于文件夹或文件,可以存储少量数据,并支持监听功能。你可以把 Zookeeper 看成一个。在大规模分布式系统中,配置管理是一个大问题。,当这个 Znode 发生变化时,Zookeeper 会主动通知客户端。,立刻通知所有订阅了这个节点的应用,让它们更新配置,而。在 Zookeeper 里,所有数据都是以。并缓存配置,同时对该 Znode。,确保应用不需要重启就能更新配置。存储的,每一个数据单元叫做。所有应用在启动时,会读取。,并在状态发生变化时。

2025-03-05 01:22:17 222

原创 Zookeeper 的 Node(Znode) 是什么?Zookeeper 监听机制的特点是什么?

其中的 Znode 类似于文件夹或文件,可以存储少量数据,并支持监听功能。你可以把 Zookeeper 看成一个。在大规模分布式系统中,配置管理是一个大问题。,当这个 Znode 发生变化时,Zookeeper 会主动通知客户端。,立刻通知所有订阅了这个节点的应用,让它们更新配置,而。在 Zookeeper 里,所有数据都是以。并缓存配置,同时对该 Znode。,确保应用不需要重启就能更新配置。存储的,每一个数据单元叫做。所有应用在启动时,会读取。,并在状态发生变化时。

2025-03-04 01:17:09 499

原创 【忍者算法】5分钟彻底掌握括号生成题!用「栈匹配理论」轻松理解|LeetCode 22 括号生成

平衡原则:右括号数不超过左括号计数约束:左右括号各n个回溯思维:在保证合法性的前提下尝试所有可能作者:忍者算法公众号:忍者算法🎁 回复【刷题清单】获取LeetCode高频面试题合集🧑‍💻 回复【代码】获取多语言完整题解💡 回复【加群】加入算法交流群,一起进步#算法面试 #LeetCode #回溯算法 #括号匹配。

2025-03-04 00:40:28 967

原创 更深入理解反向传播:一个具体的例子

调整 ( w ),让预测成绩 ( \hat{y} ) 更接近真实成绩 ( y )。更新后,我们再进行下一轮前向传播,不断调整 ( w ),直到预测值接近真实值。如果你有任何不理解的地方,或者想看更复杂的神经网络案例,随时问我!来手算反向传播,并用 Python 代码演示。误差很大,我们需要更新 ( w )。,目标是预测某个学生的考试成绩。假设你有一个神经网络,它只有。

2025-03-03 00:56:45 996

原创 反向传播(Backpropagation)直觉理解

想象你在练习投篮,目标是让篮球进框。但你一开始投的方向可能偏左、偏右,或者力道过大、过小。每次投篮后,你会观察球偏离篮筐的情况,并调整投篮方式,让下次投得更准。假设你在爬一座山(代表误差),目标是找到最低点(误差最小的地方)。反向传播就是在解决这两个问题——告诉你该如何调整神经网络的“投篮”方式,让它越来越准。计算误差对权重 ( w ) 的影响,然后调整 ( w ) 以减少误差。这个“误差是如何受到参数影响的”是由。计算的,我们稍后用简单直觉来解释它。神经网络的“投篮”其实是。,而“调整投篮方式”是。

2025-03-03 00:51:56 1137

原创 【架构师必看】kafka如何在多数据中心部署?

这样,中国的数据中心就能消费新加坡的数据,同时保持新加坡数据的隔离性。MM2 还能同步 Consumer Offset,确保。这样,北京和上海的 Kafka 都能获取。示例 mm2.properties。这种情况下,最合适的架构是。的数据复制工具,专门用于。

2025-03-02 08:45:00 538

原创 【面试必备】一文讲清 Kafka 里的 Consumer Group 和 Offset 机制!

Group A 和 Group B 各自独立维护自己的 offset,Group A 可能比 Group B 早或者晚消费同一 Partition 的数据,但它们互不影响。,每个 Consumer Group 都会维护自己的一套 offset。这样 Kafka 允许多个业务系统独立消费相同的数据,而不会互相影响。,这个 Topic 由 Kafka 内部管理,不会被普通业务消费。Kafka 提供了一个参数 auto.offset.reset。这样一来,Kafka 里的。表示 Group_A。

2025-03-02 07:30:00 950

原创 Kafka 为什么会消息堆积?

这样解释的话,Kafka 为什么会消息堆积,是不是更清楚了?

2025-03-01 14:45:59 661

原创 Kafka的高水位、低水位是什么概念?

Kafka 的和是和数据存储、消费进度、日志清理等密切相关的重要概念。我们用一个的比喻来形象地解释它们的作用。

2025-03-01 14:43:24 795

原创 【面试必问】Zookeeper 的使用场景有哪些?

当面试官问到 “Zookeeper 的使用场景有哪些?分布式协调(系统间事件通知)分布式锁(保证资源互斥访问)元数据与配置管理(存储系统状态)高可用性(主备切换)详细讲解 Zookeeper 的 Watch 机制如何实现通知。说明 Zookeeper 的临时节点如何用于分布式锁。解释 Zookeeper 在 Dubbo、Kafka、Hadoop 中的具体作用。如何表现得更专业?结合具体业务场景,不要只是背概念,比如用“Dubbo 注册中心”或“Hadoop HA”来说明。

2025-02-28 21:37:45 940

原创 es 生产集群的部署架构是什么?每个索引的数据量大概有多少?每个索引大概有多少个分片?

Elasticsearch 生产集群的部署架构问题,是面试中的一个常见考察点。回答时,关键是展现出你对 ES。

2025-02-28 17:40:30 1035

原创 Elasticsearch 数据量大时如何优化查询性能?

在面试中,如果你被问到:“Elasticsearch(ES)在数据量很大的情况下(数十亿级别)如何提高查询效率?” 那么面试官其实是在测试你是否有实际使用 ES 的经验。为什么这么说?因为很多人以为 ES 性能非常强大,但实际上,在数据量达到几亿甚至数十亿条时,你可能会惊讶地发现,搜索一次需要 5~10 秒。而且,第一次查询特别慢,之后才变快,变成几百毫秒。这是为什么?本文将从 ES 的底层原理入手,逐步拆解大规模数据查询优化的方法。ES 性能优化没有“万能的参数”,不能指望改个配置就能让所有查询变快。但是

2025-02-27 08:00:00 929

原创 es 写入数据的工作原理是什么啊?es 查询数据的工作原理是什么啊?底层的 lucene 介绍一下呗?倒排索引了解吗?

客户端选择一个节点作为(协调节点),发送请求。协调节点对文档进行路由,根据文档 ID 计算哈希值,确定其应该存储在哪个 primary shard 上。Primary shard 处理请求,然后将数据同步到所有的 replica shard。当 primary 和所有 replica 完成后,协调节点向客户端返回写入成功的响应。写入数据时。

2025-02-27 00:27:32 937

原创 Elasticsearch 的分布式架构原理:通俗易懂版

Elasticsearch 通过分片(Sharding)+副本(Replication)机制,实现了分布式存储和高可用性,同时提供了近实时搜索的能力,使得它成为大数据搜索和分析的主流选择。在现代互联网公司,Elasticsearch 主要用于日志分析、全文搜索、业务分析、推荐系统等场景。如果你在面试中遇到 ES 相关问题,理解这些基本概念,可以帮助你更好地应对面试挑战。

2025-02-26 23:52:59 1135

原创 ElasticSearch 是如何实现分布式的?

ElasticSearch 作为分布式搜索引擎,核心原理就是数据分片 + 副本存储 + 主节点管理。简单来说,ES 就像一个高效的快递网络,把数据拆成多个小块(Shard),分发到不同的服务器上,同时保持数据的副本,确保高性能和高可用。如果你在面试中被问到ES 的分布式架构,可以用上面这个类比来回答,相信面试官会对你的理解能力印象深刻!

2025-02-26 23:50:01 973

原创 深入浅出 Java 内存模型(JMM)与 volatile 关键字

在理解 JMM 之前,我们需要先了解计算机的底层执行机制。在多线程编程中,Java 内存模型(Java Memory Model,Java 代码的执行顺序 ≠ 代码的编写顺序,因为编译器和 CPU。是 Java 提供的一种轻量级的同步机制,它主要用于。操作 B,那么 A 的结果一定对 B 可见。虽然在单线程环境下,指令重排不会影响最终结果,但在。Java 内存模型是高性能并发编程的基础,理解。为了保证线程间的正确性,Java 规定了。看似是一个简单的操作,但它其实是。,但在多线程环境下,

2025-02-24 22:57:00 1967

原创 一文讲清线程池中的无界阻塞队列问题及解决方案

在并发编程中,线程池是提高系统吞吐量并避免频繁创建销毁线程的常用手段。然而,在使用线程池时,如果选择了。),可能会带来严重的内存管理问题,特别是在远程服务异常或请求处理能力不足时。如果线程池所在机器突然宕机,队列中的任务都会丢失。后台线程监听消息队列,当线程池负载降低时,从队列中取出任务重新执行。在提交任务前,先将任务信息存入数据库,状态标记为。为了解决无界队列导致的内存溢出问题,可以使用。假设一个典型的远程调用服务,使用了。,确保任务在系统恢复后仍然能够执行。如果任务无法被执行,可以。

2025-02-24 22:49:26 638

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除