征服LeetCode,你的刷题之路就此开始,手把手带你了解算法奥秘

面试必备:LeetCode刷题技巧的艺术 真正的LeetCode高手,掌握的是​​可迁移的算法思维​​:​​模式识别​​:从问题到算法的映射能力​​系统思维​​:从解法到设计的升华​​调试艺术​​:从错误到优化的路径正如计算机科学家Donald Knuth所言:"算法不是用来死记硬背的,而是用来理解问题本质的思维工具。" 掌握这些技巧,您将在算法面试中游刃有余。 阅读详情

“你是不是也这样?
打开LeetCode,看着题目发呆,脑子里一堆‘暴力解法’,提交后却只换来一个冰冷的‘Time Limit Exceeded’?
别慌!《LeetCode 101》 就是你的救星!

这里没有晦涩的理论,只有清晰的套路、高效的代码模板和面试官最爱的优化技巧。
不管你是被‘动态规划’虐到怀疑人生,还是看到‘二叉树’就头皮发麻——

哎呀,看到你这问题,我就不得不说,你这卡在算法学习的瓶颈上了啊。咱这行,不就是算法吃饭的嘛。别急,哥来给你掰扯掰扯,怎么学算法才能真练成个高手。


跟着这篇攻略,一路平推LeetCode 101,从此算法面试横着走!”

先说个老实话,理论你是绕不过去的。你看了《数据结构与算法》和《算法图解》这些书,觉得太理论了用不上,那是因为你还没找到对的练法。就像你学武功,光练套路不打实战那肯定不行啊,但没有套路,实战也打不出花样来。所以,理论和实践得结合。

首先打开 LeetCode 网站,如果我们按照题目类型数量分类,最多的几个题型有数组、动态规划、数学、字符串、树、哈希表、深度优先搜索、二分查找、贪心算法、广度优先搜索、双指针等等。

第一个大分类是算法

本书先从最简单的贪心算法讲起,然后逐渐进阶到二分查找、排序算法和搜索算法,最后是难度比较高的动态规划和分治算法

第二个大分类是数学

包括偏向纯数学的数学问题,和偏向计算机知识的位运算问题。这类

问题通常用来测试你是否聪敏,在实际工作中并不常用,笔者建议可以优先把精力放在其它大类

上。

第三个大分类是数据结构

包括 C++ STL 内包含的常见数据结构、字符串处理、链表、树和

图。其中,链表、树、和图都是用指针表示的数据结构,且前者是后者的子集。最后我们也将介

绍一些更加复杂的数据结构,比如经典的并查集和 LRU。

学算法一定要多思考、多练习!!!

在复习 Java、巩固基础的过程中,每天可以坚持用 Java 做 2 - 3 道算法题目。

不用担心看不懂,直接进入 LeetCode 学习板块 LeetBook,提供了免费的教程,文字、图解、动画讲算法、在线练习应有尽有,从 0 开始,跟着学习基础知识、跟着教程刷一些同类题目,培养算法思路。

目录

先打基础,再搞高深

别急着上来就刷力扣的困难题,先把基础打牢。基础是什么?排序算法、查找算法、基本的数据结构(链表、栈、队列、树、图),这些东西你得扎扎实实掌握。你要知道,复杂的问题,往往都是简单问题的叠加和变种。

1. 排序和查找

先拿排序和查找练手。你别看排序简单,冒泡、插入、选择、快速、归并,每种都敲一遍,自己实现一遍,再理解它们的时间复杂度和空间复杂度。查找算法,二分查找是基础,弄懂了这个,再搞搞其他的。

2. 数据结构

数据结构这块,你就把链表、栈、队列、树、图这些东西搞明白。每种数据结构,自己实现一遍,光看书不敲代码,那是不行的。比如链表,单链表、双链表、循环链表,自己写写插入、删除、查找这些操作,熟练了再说。


好了聊完以上内容,就到了我们实际内容供大家查看

贪心算法

顾名思义,贪心算法或贪心思想采用贪心的策略,保证每次操作都是局部最优的,从而使最

后得到的结果是全局最优的。

举一个最简单的例子:小明和小王喜欢吃苹果,小明可以吃五个,小王可以吃三个。已知苹

果园里有吃不完的苹果,求小明和小王一共最多吃多少个苹果。在这个例子中,我们可以选用的

贪心策略为,每个人吃自己能吃的最多数量的苹果,这在每个人身上都是局部最优的。又因为全

局结果是局部结果的简单求和,且局部结果互不相干,因此局部最优的策略也同样是全局最优的

策略。

在贪心算法下有两个重点问题

分配问题

区间问题

现在到了双指针

双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。也可以延伸到多个数组的多个指针。

若两个指针指向同一数组,遍历方向相同且不会相交,则也称为滑动窗口(两个指针包围的区域即为当前的窗口),经常用于区间搜索。

若两个指针指向同一数组,但是遍历方向相反,则可以用来进行搜索,待搜索的数组往往是排好序的。

对于 C++ 语言,指针还可以玩出很多新的花样。一些常见的关于指针的操作如下。

同样的还是两个经典问题抛给大家,供大家参考

归并两个有序数组

滑动窗口

二分查找

二分查找也常被称为二分法或者折半查找,每次查找时通过将待查找区间分成两部分并只取一部分继续查找,将查找的复杂度大大减少。对于一个长度为 O(n) 的数组,二分查找的时间复杂度为 O(log n)。

举例来说,给定一个排好序的数组 {3,4,5,6,7},我们希望查找 4 在不在这个数组内。第一次折半时考虑中位数 5,因为 5 大于 4, 所以如果 4 存在于这个数组,那么其必定存在于 5 左边这一半。于是我们的查找区间变成了 {3,4,5}。(注意,根据具体情况和您的刷题习惯,这里的 5 可以保留也可以不保留,并不影响时间复杂度的级别。)第二次折半时考虑新的中位数 4,正好是我们需要查找的数字。于是我们发现,对于一个长度为 5 的数组,我们只进行了 2 次查找。如果是遍历数组,最坏的情况则需要查找 5 次。

我们也可以用更加数学的方式定义二分查找。给定一个在 [a; b] 区间内的单调函数 f (x),若f (a) 和 f (b) 正负性相反,那么必定存在一个解 c,使得 f (c) = 0。在上个例子中,f (x) 是离散函数f (x) = x +2,查找 4 是否存在等价于求 f (x) −4 = 0 是否有离散解。因为 f (1) −4 = 3−4 = −1 < 0、f (5) − 4 = 7 − 4 = 3 > 0,且函数在区间内单调递增,因此我们可以利用二分查找求解。如果最后二分到了不能再分的情况,如只剩一个数字,且剩余区间里不存在满足条件的解,则说明不存在离散解,即 4 不在这个数组内。

具体到代码上,二分查找时区间的左右端取开区间还是闭区间在绝大多数时候都可以,因此有些初学者会容易搞不清楚如何定义区间开闭性。这里我提供两个小诀窍,第一是尝试熟练使用一种写法,比如左闭右开(满足 C++、Python 等语言的习惯)或左闭右闭(便于处理边界条件),尽量只保持这一种写法;第二是在刷题时思考如果最后区间只剩下一个数或者两个数,自己的写法是否会陷入死循环,如果某种写法无法跳出死循环,则考虑尝试另一种写法。

二分查找也可以看作双指针的一种特殊情况,但我们一般会将二者区分。双指针类型的题,指针通常是一步一步移动的,而在二分查找里,指针每次移动半个区间长度。

同样的还是两个经典问题抛给大家,供大家参考

第一个就是求开方

给定一个非负整数,求它的开方,向下取整。

第二个就是查找区间

现在到了排序算法

以下是一些最基本的排序算法。虽然在 C++ 里可以通过 std::sort() 快速排序,而且刷题时很少需要自己手写排序算法,但是熟习各种排序算法可以加深自己对算法的基本理解,以及解出由这些排序算法引申出来的题目。

有以下5种排序类型他们分别是快速排序、归并排序、插入排序、冒泡排序、选择排序

在这一个经典问题抛给大家,供大家参考

由于中间包含的算法类型实在是太多,我就跳过,直接来描述数据结构

指针三剑客之一:链表

(单)链表是由节点和指针构成的数据结构,每个节点存有一个值,和一个指向下一个节点的指针,因此很多链表问题可以用递归来处理。不同于数组,链表并不能直接获取任意节点的值,必须要通过指针找到该节点后才能获取其值。同理,在未遍历到链表结尾时,我们也无法知道链表的长度,除非依赖其他数据结构储存长度。LeetCode 默认的链表表示方法如下。

struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(nullptr) {}
};

由于在进行链表操作时,尤其是删除节点时,经常会因为对当前节点进行操作而导致内存或指针出现问题。有两个小技巧可以解决这个问题:一是尽量处理当前节点的下一个节点而非当前节点本身,二是建立一个虚拟节点 (dummy node),使其指向当前链表的头节点,这样即使原链表所有节点全被删除,也会有一个 dummy 存在,返回 dummy->next 即可。

案例题我直接给大家甩出来

以 O(1) 的空间复杂度,判断链表是否回文。

指针三剑客之二:树

作为(单)链表的升级版,我们通常接触的树都是二叉树(binary tree),即每个节点最多有两个子节点;且除非题目说明,默认树中不存在循环结构。LeetCode 默认的树表示方法如下。

struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};

可以看出,其与链表的主要差别就是多了一个子节点的指针。

数的递归

对于一些简单的递归题,某些 LeetCode 达人喜欢写 one-line code,即用一行代码解决问题,把 if-else 判断语句压缩成问号冒号的形式。我们也会展示一些这样的代码,但是对于新手,笔者仍然建议您使用 if-else 判断语句。在很多时候,树递归的写法与深度优先搜索的递归写法相同,因此本书不会区分二者

案例题我直接给大家甩出来

指针三剑客之三:图

作为指针三剑客之三,图是树的升级版。图通常分为有向(directed)或无向(undirected),有循环(cyclic)或无循环(acyclic),所有节点相连(connected)或不相连(disconnected)。树即是一个相连的无向无环图,而另一种很常见的图是有向无环图(Directed Acyclic Graph,DAG)。

有向无环图样例

图通常有两种表示方法。假设图中一共有 n 个节点、m 条边。第一种表示方法是邻接矩阵(adjacency matrix):我们可以建立一个 n× n 的矩阵 G,如果第 i 个节点连向第 j 个节点,则 G[i][j]= 1,反之为 0;如果图是无向的,则这个矩阵一定是对称矩阵,即 G[i][j] = G[j][i]。第二种表示方法是邻接链表(adjacency list):我们可以建立一个大小为 n 的数组,每个位置 i 储存一个数组或者链表,表示第 i 个节点连向的其它节点。邻接矩阵空间开销比邻接链表大,但是邻接链表不支持快速查找 i 和 j 是否相连,因此两种表示方法可以根据题目需要适当选择。除此之外,我们也可以直接用一个 m × 2 的矩阵储存所有的边。

案例题我直接给大家甩出来

练习可以看着练习,也可直接搜索答案直接查询,对自己的提升也是有好处的

注:篇幅有限,资料已整理成文档,查看下方名片获取!

利用数据结构与算法,征服 LeetCode 高峰 LeetCode 作为全球知名的算法练习平台,汇聚了大量高质量的算法题目,涵盖了各种数据结构和算法类型。掌握数据结构与算法并在 LeetCode 上取得优异成绩,不仅有助于提升编程能力,还能为求职面试、技术竞赛等提供有力支持。本文的目的是系统地介绍数据结构与算法的知识体系,并将其应用到 LeetCode 题目中,帮助读者掌握解题思路和方法,提高解题效率和准确率。 阅读详情

相关推荐

C#语言LeetCode刷题实战与算法提升课程

在 C# 中,string是引用类型,但一旦创建就不能修改。任何“修改”操作(如拼接、替换、截取)都会创建新的字符串对象,旧的对象留在堆中等待 GC 回收。这意味着上面那段代码的时间复杂度是O(n²)!😱n 次拼接 → n 个中间字符串 → 总拷贝次数 ≈ 1+2+3+…+n = O(n²)LeetCode 刷题的本质,不是背答案,而是构建一套完整的算法认知体系。从数组的内存模型,到字符串的不可变性;从双指针的状态推进,到哈希表的空间换时间;

weixin_35754962的博客 958

LeetCode刷题指南:用C语言征服50道经典算法题

LeetCode 作为全球知名的算法练习平台,提供了大量经典的算法题目。使用 C 语言刷题,不仅可以加深对算法的理解,还能提升对底层编程的掌握。本指南将带领你用 C 语言征服 50 道经典算法题,为你的技术能力提升助力。

星辰夜语的博客 2028

基于车牌识别的停车收费系统的设计与实现(源码+开题)

本系统(程序源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景: 随着城市化进程的加速和汽车保有量的增加,停车难成为了一个普遍存在的问题。传统的停车收费方式存在着效率低下、管理混乱等问题。因此,开发一款基于车牌识别的停车收费系统具有重要的现实意义。研究意义: 基于车牌识别的停车收费系统可以有效地解决传统停车收费方式在效率和准确性方面的问题,提高停车服务的效率和质量。

迟限程序设计 1393

刷题玩梗?LeetCode上的神回复治好了你的精神内耗

关注卷福的朋友大部分也都是程序员,对LeetCode这个刷题网站也不陌生,LeetCode评论区堪称当代赛博文学巅峰——有人用代码征服Hard题,有人用段子征服百万网友。” 两数之和作为LeetCode的第一题,地位不亚于英语四级单词的abandon!这些神回复背后,是无数个凌晨debug的夜晚,是屏幕前哭哭笑笑的牛马,是代码世界里独特的浪漫主义。:当你苦思冥想三小时,看到评论区"一行代码秒杀"的答案时,终于领悟了代码界的相对论————在这里,我们自嘲、挣扎、破防,然后默默敲下:“/* 明天再战 */”。

龙大 1245

Vue3实战:集成bpmn-js与Activiti工作流引擎的完整指南

本文详细介绍了如何在Vue3项目中集成bpmn-js流程图编辑器与Activiti工作流引擎,构建一个完整的前端流程设计器。文章重点解析了Vue3响应式系统与bpmn-js集成的核心陷阱及解决方案,并提供了属性面板配置、XML命名空间适配、撤销重做等实用功能的完整实现指南,帮助开发者高效完成工作流系统的前端开发。

weixin_29009881的博客 213

InSAR_ISCE软件数据处理流程之:利用哨兵数据获取2015年尼泊尔地震同震形变场

ISCE软件数据处理流程之:利用哨兵数据获取2015年尼泊尔地震同震形变场 ISCE软件做干涉只需要将数据准备好,并配置好insarApp.xml文件即可进行。 一、数据准备 1、SAR数据获取 本利中使用的数据为欧空局提供的sentinel-1A/B数据,可从阿拉斯加数据服务器上下载,具体下载方法可参考: 哨兵数据下载方法. 2、哨兵卫星轨道文件下载 哨兵数据处理除了需要SAR影像外,还需提供轨道参数文件,可从https://qc.sentinel1.eo.esa.int/aux_poeorb/下载。下载

weixin_42128764的博客 1万+

征服面试算法-2:算法应该怎么刷

上一文,我们提到刷算法是有正确的姿势的,本文我们来谈谈算法到底该刷什么,为什么有些人刷了300道还是心里没底。混沌中,算法的边界到底在哪里,该怎么做才算练到家了。 我计划在未来一段时间,按照几个大专题,将80%的算法考察内容能涵盖到。 具体包括: 1.将算法拆分成大约 35个专题训练,每个都是从基本问题出来,不断拔高,扎实练好基本功 2.一起练习大约500道leetcode题,完整覆盖面试题目。剩下的题目以“强化训练”的方式进行额外训练。 3. 一法解多题和一题最解结合,事半功倍 一法解多题是.

纵横千里 捭阖四方 的专栏 821

[图解]SysML与EA实战:住宅安全系统接口块设计全解析

本文详细解析了使用SysML和EA工具进行住宅安全系统接口块设计的全流程。从系统上下文图入门到接口块实战技巧,涵盖块定义图与内部块图的视角转换,以及多图协同建模方法论。特别分享EA工具的高效操作指南和常见问题避坑建议,帮助工程师掌握精确信号定义、端口方向设置等关键技能,提升安防系统设计效率。

weixin_29234509的博客 334

征服面试算法-3:算法到底要刷什么

1.一维数组的基本操作 一维数组是最基本的数据结构,常规的数组面试题目也很容易知道怎么做。主要挑战在于边界的处理。在leetcode中数组的题目有360多道,但是数组是大量高级算法的载体,难度差异很大,所以这里我们先梳理常规的题目,难的后面相应章节再讨论。 数组的基本操作是创建+增删改查,其实任何数据结构的基本操作都是这5个,将其搞清楚就掌握一半了。 在面试中,数组大部分情况下都是int类型的,所以我们就用int类型来实现这些基本功能。 1.1 创建和初始化 创建一维数组的方法很简单: i

纵横千里 捭阖四方 的专栏 1132

c语言串口编程详解

串口: 一种异步通信接口,通常用于低速数据传输。RS-232: 最常见的串口标准,定义了电气特性、连接器和信号线。UART: 通用异步收发传输器,是实现串口通信的硬件模块。通过以上内容,你应能够理解并实现C语言在Windows和Linux平台上的串口编程。希望这本手册能帮助你在实际项目中顺利进行串口通信开发。如果有任何疑问或需要进一步的帮助,请随时提问。

jkzyx123的博客 2224

如何让Arduino IDE支持你手里的STM32 nucleo开发板

Arduino IDE开发环境在默认情况下不支持STM32 NUCLEO开发板,只有通过添加附加开发板管理包才能使用。目前为止,只有一部分板子支持使用Arduino IDE开发环境进行开发,分别是 Nucleo F207ZG, Nucleo F429ZI, Nucleo F030R8, Nucleo F091RC, Nucleo F103RB, Nucleo F303RE, Nucl...

mzw72188552的专栏 8972

Python力扣刷题实战:从零到精通的五步心法与核心算法详解

算法是计算机科学的核心基础,其本质是通过一系列指令高效解决特定问题的逻辑与步骤。理解算法原理,关键在于掌握数据结构(如数组、链表、哈希表)与算法思想(如分治、贪心、动态规划)之间的映射关系。掌握算法能极大提升代码效率与问题解决能力,是软件工程师进行系统设计、性能优化和通过技术面试的基石。在Python编程与算法面试准备等应用场景中,系统化的学习方法尤为重要。本文聚焦于力扣刷题,深入探讨了以哈希表和双指针为代表的核心数据结构与算法的Pythonic实现与实战技巧,旨在帮助学习者构建从理解到内化的高效学习路径。

weixin_30861459的博客 450

checking OpenSSL library version... configure: error: OpenSSL >= 1.1.1 required (have “100020bf 解决方案

 本文主要介绍了checking OpenSSL library version… configure: error: OpenSSL >= 1.1.1 required (have “100020bf (OpenSSL 1.0.2k-fips 26 Jan 2017)”)解决方案,希望能对使用Linux的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 2万+

lucifer与它的《力扣加加》来啦

点击蓝色“力扣加加”关注我哟加个“星标”,带你揭开算法的神秘面纱!❝这是力扣加加第「1」篇原创文章❞力扣加加就在今天力扣加加正式脱离【脑洞前端】,成为了一个独立的的公众号。脑洞前端:你已...

azl397985856的专栏 1665

AI上推荐 之 AutoRec与Deep Crossing模型(改变神经网络的复杂程度)

1. 前言 随着信息技术和互联网的发展, 我们已经步入了一个信息过载的时代,这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战: 信息消费者:如何从大量的信息中找到自己感兴趣的信息? 信息生产者:如何让自己生产的信息脱颖而出, 受到广大用户的关注? 为了解决这个矛盾, 推荐系统应时而生, 并飞速前进,在用户和信息之间架起了一道桥梁,一方面帮助用户发现对自己有价值的信息, 一方面让信息能够展现在对它感兴趣的用户前面。 推荐系统近几年有了深度学习的助推发展之势迅猛, 从前深度学习的传统推荐模型(协

Miracle8070 5669

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

算法竞赛终极指南:如何从零征服ACM与LeetCode

算法竞赛是提升编程能力的黄金路径,无论是准备**ACM国际大学生程序设计竞赛**还是**LeetCode刷题**,系统学习都是成功的关键。本指南将为你提供完整的**算法学习路线**,从基础数据结构到高级算法技巧,助你轻松应对各类编程挑战。 ## 📚 数据结构基础:打好算法根基 在学习复杂算法前,必须掌握**核心数据结构**。algorithm-base项目提供了丰富的动画模拟教程: - *

gitblog_00384的博客 484

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

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

Aerion PGP与S/MIME加密设置教程:如何为邮件签名与加密,保护通信隐私

Aerion 是一款开源轻量级邮件客户端,内置完整的 PGP 与 S/MIME 加密引擎,让你无需第三方插件就能为邮件签名与加密。本教程带你从零完成邮件加密设置:导入密钥、配置签名策略、自动查找收件人公钥,全程在本地处理,隐私零妥协。 [![Aerion开源邮件客户端的收发界面截图,用于PGP与S/MIME加密邮件设置](https://raw.gitcode.com/gh_mirrors/ae

gitblog_00272的博客 219

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

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

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

力扣刷题_第六周

二叉树的后序遍历、归并和快排算法及其应用。

ericma12的博客 491

14 天肝完这 110 道 LeetCode 算法题小抄,喜提 8 个大厂 offer

随着互联网寒潮的到来, 越来越多的互联网公司提高了面试的难度,其中之一就是加大了面试当中手撕算法题的比例。这里说的算法题不是深度学习,机器学习这类的算法,而是排序,广度优先,动态规划这类既考核数据结构也考核编程能力的题目。刷题的网址非常的多,其中以 leetcode 是最为出名的。刷过的题老是忘,第二次刷的时候还是不会做刷题的速度很慢,即使花一天时间,也常常只能刷五六道坚持不下来,老是刷到一半就停滞下来了,当我第二次再来刷的时候,前面刷过的题都又忘的差不多。

wadfdhsajd的博客 362

【LeetCode】征服LeetCode系列文章汇总目录(持续更新中)

本文属于「征服LeetCode」系列文章的总目录,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日。由于系列文章的内容随时可能发生更新变动,特地创建此文作为汇总和索引之用,也欢迎各位读者关注和收藏本文以作备忘。 ...

memcpy0的博客 1149

从两数之和到动态规划:Algorithms-Leetcode-Javascript 带你征服 LeetCode 不同难度题目

Algorithms-Leetcode-Javascript 是一个专注于用 JavaScript 解决算法问题的开源项目,涵盖了 LeetCode 等平台上不同难度的算法题目,从简单的两数之和到复杂的动态规划问题,为算法学习者提供了丰富的实践资源。 ## 一、轻松入门:掌握简单算法题目的解题思路 对于算法新手来说,从简单题目入手是快速建立信心的好方法。在项目的 LeetcodeProblem

gitblog_00839的博客 699

LeetCode1162.地图分析——刷题日志

LeetCode1162.地图分析——刷题日志 力扣每日一题小白小总结。 题目描述 你现在手里有一份大小为 N x N 的『地图』(网格) grid,上面的每个『区域』(单元格)都用 0 和 1 标记好了。其中 0 代表海洋,1 代表陆地,你知道距离陆地区域最远的海洋区域是是哪一个吗?请返回该海洋区域到离它最近的陆地区域的距离。 我们这里说的距离是『曼哈顿距离』( Manhattan Distan...

weixin_45148997的博客 411

<LeetCode天梯>Day051 缺失数字(遍历+异或) | 初级算法 | Python

一起来刷力扣LeetCode呀!~

车手只需要车和手,压力来自轮胎 1340

【力扣刷题 | 第六天】

今天我们进入字符串章节的刷题旅程,希望各位小伙伴可以和我一起坚持下去,一起征服力扣!

fckbb的博客 508

LeetCode刷题offer21-简单-调整数组顺序使奇数位于偶数前面

算法作为极其重要的一点,是大学生毕业找工作的核心竞争力,所以为了不落后与人,开始刷力扣算法题!

布小禅的博客 4332

InnoDB 内存结构总览:Change Buffer、AHI 与 Log Buffer

本文系统梳理InnoDB内存结构中的ChangeBuffer、Adaptive Hash Index(AHI)与LogBuffer。ChangeBuffer缓存二级索引页不在内存时的变更,减少随机IO,仅在页加载时合并;聚簇索引修改立即执行,因数据本身不可延后。AHI基于高频等值查询自动构建哈希索引,加速定位,仅支持等值操作。LogBuffer为redo log内存缓冲,配合磁盘日志实现崩溃恢复。三者均服务于性能优化,其中ChangeBuffer与AHI共享BufferPool空间,而LogBuffer独立

bksczm的博客 303
上一篇: API 请求慢?这次锅真不在后端
下一篇: 现在的Java工程师都有一个通病.....
程序员职业指南
博客等级 码龄4年 2138粉丝 960原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值