LeetCode 73,为什么第一反应想到的解法往往是个坑?

LeetCode刷题之旅——算法很苦,但生活更苦 LeetCode部分算法题解题思路 算法能力真的是程序员水平的分水岭,也许你的工作中短时间之内还用不到,对于工作年头短或者一直从事简单业务的程序员来说,算法确实对工作没什么帮助,但是如果你有了想要进步,跳槽,或者精进技术的一些想法,不可避免的你就会接触一些开源项目,设计,思想以及面试,你会发现在这个过程中算法每时每刻都在影响着你,所以这东西就像是吃下去的饭一样,可能你吃下去你都忘记了味道,短时间也看不到给你身体带来什么变化,但是它会变成你的骨头和肉,永远存在于你的身体里,算法我觉得也是这样,说出一个问题,身 阅读详情

本文始发于个人公众号:TechFlow,原创不易,求个关注


今天是LeetCode第42篇文章,我们来看看LeetCode第73题矩阵置零,set matrix zeroes。

这题的难度是Medium,通过率在43%左右,从通过率上可以看出这题的难度并不大。但是这题的解法不少,从易到难,有很多种方法。而且解法和它的推导过程都挺有意思,我们一起来看下。


题意


首先我们来看题意,这题的题意很简单,给定一个二维数组。要求我们对这个数组当中的元素做如下修改,如果数组的i行j列为0,那么将同行和同列的元素全部置为0。要求我们直接在原数组上进行修改,而不是返回一个新的数组。

言下之意,要求我们实现一个in-place的方法,而避免额外开辟新的内存。


样例

Input: 
[
  [0,1,2,0],
  [3,4,5,2],
  [1,3,1,5]
]
Output: 
[
  [0,0,0,0],
  [0,4,5,0],
  [0,3,1,0]
]

近在眼前的解法原来是坑


这题的题意非常简单,解法也非常明显,以至于很多人拿到它都会当做模拟题来解决。即遍历一下数组,如果找到0,那么将它所在的行和列赋值为0,然后继续遍历。

这段逻辑并不难写,我们很容易写出来:

class Solution:
    def setZeroes(self, matrix: List[List[int]]) -> None:
        """
        Do not return anything, modify matrix in-place instead.
        """
        n = len(matrix)
        if n == 0:
            return
        
        m = len(matrix[0])
        for i in range(n):
            for j in range(m):
                # 当我们找到为0的位置之后,将所在的行和列置为0
                if matrix[i][j] == 0:
                    for k in range(m):
                        matrix[i][k] = 0
                    for k in range(n):
                        matrix[k][j] = 0

但是很遗憾的是,这样的做法是错误的,实际上连样例都无法通过。通不过样例的原因也很简单, 因为0具有传递性。

举个简单的例子,假设第0行当中有一个0,那么最后的结果一定是第0行全部被置为0。但问题是我们是在遍历到0的时候来进行的set操作,这样会将第0行的其他元素也置为0。这样当我们遍历到后面的位置之后,会继续传递,从而将一些不该置为0的地方也置为0了。

举个简单的例子,比如:第0行是1 0 0 1。显然由于第0行存在0,所以操作之后的结果一定是全为0。但问题是matrix[0][3]这个位置原本并不为0,但是如果我们在发现matrix[0][1]为0的时候,将它置为0的话,那么当我们后面遍历到matrix[0][3]得到0的时候,会无法判断究竟是这个位置原本就是0,还是前面出现了0导致这一行全部变成了0。这两者的操作是不同的。

眼看着目标就在眼前,好像一伸手就碰得到,但是偏偏好像这一步就是咫尺天涯,怎么也碰不到。这种感觉想想都很难受,我想,当你试着用这种方法去解这道题然后发现不行的时候,一定会有这样的感觉。并且你会发现好像也没有什么很好的办法来优化。

这种情况在正式的算法比赛当中经常遇到,所以专业的竞赛选手有了经验(吃过亏)之后,想出思路的第一时间就会立即转向思考,这样做是不是会有什么坑,或者是考虑不到的情况。严谨一点的同学还会构思几组不同的测试数据进行测试,或者是脑海中模拟算法的运算。


刚不过去只能绕


以前我年轻的时候总是不信邪,有时候明知道这个方法并不好,或者是存在反例,但是仍会坚持想要通过自己的努力想出一个方案来解决它,而不是更换方法。

我不知道有多少人有同样的想法,但是一般来说头铁的毛病最后总是会被治好的。这题算是一个不错的例子,如果你坚持使用模拟的方法来做这道题,只有一种方案就是再创建一个同样大小的数组来作为缓存。当我们遇到0的时候,我们不直接修改原数组中的结果,而是修改缓存,将同行和同列缓存数组中的元素置为0,最后再将缓存数组与原数组合并。

但是显然这不是一种好的方法,因为题目要求in-place的目的就是为了节约空间,我们另外创建了一个同样大小的数组显然违背了题目的本意。

所以头铁到最后还是得认清现状,这个方法不适合这道题,需要更换解法。如果是在比赛当中得出的这个结论,那么很有可能奖牌已经和你没什么关系了。坚持和固执本身也许没有太大的区别, 可能只是出现的场景不一样。


进阶解法


回到这道题本身,我们已经证明了模拟的思路是行不通的,除了一边遍历一边操作可能带来的混乱之外,还有一个点是这样的复杂度很高。因为如果原数据当中如果本身0就很多的话,那么我们会需要不停地操作,极端情况下,如果所有元素都是0,那么我们每一个位置都需要操作一下行列,整体的复杂度会达到O(n3)O(n^3)O(n3)。

既然如此,还有什么好的办法吗?

当然是有的,其实也挺明显的,因为对于一个出现的0来说它会影响的范围是固定的,就是所在的行和列,那我们是不是记录下会全部置为0的行和列,最后再遍历一遍数据,看下当前元素是不是出在置为0的范围当中就可以了。这种方法需要我们再创建两个数组,用来存储行和列是否被置为0。

这个解法也很直观,想到了代码应该不难写:

class Solution:
    def setZeroes(self, matrix: List[List[int]]) -> None:
        """
        Do not return anything, modify matrix in-place instead.
        """
        n = len(matrix)
        if n == 0:
            return
        
        m = len(matrix[0])
        rows = [0 for _ in range(n)]
        cols = [0 for _ in range(m)]
        
        # 记录置为0的行和列
        for i in range(n):
            for j in range(m):
                if matrix[i][j] == 0:
                    rows[i], cols[j] = 1, 1
                    
        # 如果所在行或者列置为0,那么当前位置为0
        for i in range(n):
            for j in range(m):
                if rows[i] or cols[j]:
                    matrix[i][j] = 0
                    

终极解法


上面的做法虽然通过之后的战绩不太光彩,没能战胜90%以上的提交,但是能够通过,而且算法没有数量级的差距,也算是可以的。如果让我来做,我可能就想到这种方法为止了。但是题目当中明确说了,还有空间复杂度为O(1)的算法,逼得我进一步思考了一下。

一般来说我们都是优化时间复杂度,很少会优化空间复杂度。相比于优化时间,优化空间有时候更加困难。因为有些时候我们可以空间换时间,可以预处理,可以离线计算……方法相对比较多。但优化空间的方法则很少,尤其是很多时候还不能牺牲时间,所以一般来说只能从算法本身来优化,很少有什么套路可以套用。

在这个问题当中,要优化空间复杂度到常数级,那么说明我们连数组都不能用。也就是说不能记录行和列的信息,但是我们也不能用模拟的方法来进行,那么应该怎么办呢?

干想是很难想出来的, 但是我们换个思路,问题就完全不一样了。上面的算法时间复杂度是最优的,空间复杂度不太行,那么有没有办法既使用同样的算法,又能节省空间呢?看起来似乎不可能,但是其实可以,方法说穿了也并不值钱,就是将数据想办法存在已有的地方,而不是另外开辟空间。在这个问题当中,已有的地方当然就只有一个就是原数组。也就是说我们要把每一行和列是否为0的信息记录在原数组当中,比如我们可以把第0行和第0列用来做这个事情。

但这样又会带来另外一个问题,如果第0行和第0列本身当中也有0出现该怎么办?没办法,只能特判了。我们单独用变量来记录第0行和第0列是否被置为0,这样我们就最大化地利用了空间,将空间复杂度降低到了常数级。

代码逻辑和上面一脉相承,只是多了一点骚操作。

class Solution:
    def setZeroes(self, matrix: List[List[int]]) -> None:
        """
        Do not return anything, modify matrix in-place instead.
        """
        n = len(matrix)
        if n == 0:
            return
        
        m = len(matrix[0])
        
        row, col = False, False
        
        # 特判0,0的位置
        if matrix[0][0] == 0:
            row, col = True, True
        
        # 特判第0列是否含0
        for i in range(n):
            if matrix[i][0] == 0:
                col = True
                break
                
        # 特判第0行是否含0
        for i in range(m):
            if matrix[0][i] == 0:
                row = True
                break
                
        # 将i行,j列是否为0的信息存入matrix当中
        for i in range(0, n):
            for j in range(0, m):
                if matrix[i][j] == 0:
                    matrix[i][0] = 0
                    matrix[0][j] = 0
                    
        for i in range(1, n):
            for j in range(1, m):
                # 根据第0行与第0列数据还原
                if matrix[i][0] == 0 or matrix[0][j] == 0:
                    matrix[i][j] = 0
                  
        # 最后处理第0行与第0列
        if row:
            for i in range(m):
                matrix[0][i] = 0
                
        if col:
            for i in range(n):
                matrix[i][0] = 0

总结


到这里,这道题就算是分享完了,它的题意简单,但是解法挺多的,我个人感觉也许还存在更好的解法也不一定。

我个人做完这题最大的感受不是这题的思路如何,也不是它涉及的算法如何,而是想到了很多和算法题无关的事情。比如我们生活当中有没有这样看似简单,但是做起来发现一点也不简单的事情?有没有眼看着目标就在眼前,却发现选择的路一开始就是错的呢?

带着这样的思路来做题,会发现题目也变得有意思多了。

今天的内容就是这些,如果喜欢本文,可以的话,请点个关注,给我一点鼓励,也方便获取更多文章。

在这里插入图片描述

LeetCode 第73题:矩阵置零 矩阵置零问题展示了多种解法,从最简单直观的使用额外空间到优化的常数空间方法。通过这些例子和详细的解析,希望大家能够更好地理解和应用这些算法思想。在实际的开发中,选择适合的方法可以有效地解决问题,提升程序的性能。 阅读详情

相关推荐

为什么很多人刷了几十道贪心题,还是不会「摆动序列」?一次彻底搞懂 LeetCode 376

这篇文章深入浅出地解析了 LeetCode 376「摆动序列」的贪心解法,揭示了为什么很多人刷题却不会这道中等题目的关键原因。文章首先通过示例直观解释摆动序列的定义,指出大多数人的误区——直接套用动态规划模板。然后提出核心贪心思想:只需统计序列中的趋势拐点(峰值和谷值),而忽略连续同方向变化的中间节点。通过Python代码实现和详细示例演示,证明了这种O(n)方法的正确性。最后强调算法思维的重要性,指出这道题培养的是观察问题本质的能力——抓住关键特征而非表面数据,这种思维可应用于日志分析、股票监控等多个领域

Echo_Wish 116

LeetCode 73.矩阵置零【c++】

一、题目 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 进阶: 一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。 一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。 你能想出一个仅使用常量空间的解决方案吗? 二、解题思路 方法一: 先标记出矩阵中为0的元素所在的行和列,之后再对矩阵进行遍历,使标记的行和列的元素均为0。 方法二: 先将原矩阵进行复制,对新矩阵进行遍历,得到0

qq_52111135的博客 1152

Android-音频配置文件详解

前言:   Android P 引入了一种新的音频政策配置文件格式 (XML),用于描述音频拓扑。新的 XML 文件支持定义输出输入流配置文件、可用于播放和捕获的设备以及音频属性的数量和类型。但是每个项目的代码里面都有很多音频配置文件,具体使用的是哪个文件呢?本文将详细讲述。 1. 查看运行时具体使用的xml adb shell dumpsys media.audio_policy | grep -iE "Config source:" 结果如下: Config source: /vendor

cheriyou_的博客 3944

二维数组5:矩阵置零的三种解法

leetcode73,给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。 进阶: 一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。 一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。 你能想出一个仅使用常量空间的解决方案吗? 输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]] 输入:matrix ..

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

ADS SerDes仿真实战:深入解析Tx_Diff均衡器(EQ)参数对眼图质量的影响

本文以ADS仿真平台为基础,深入解析了SerDes设计中Tx_Diff均衡器(EQ)参数对信号完整性的核心影响。通过实战演示,详细对比了去加重(De-emphasis)与FIR抽头系数两种调节模式,揭示了它们如何有效对抗信道损耗与码间干扰,从而显著改善眼图的高度、宽度与抖动性能,为高速串行链路设计提供关键调优思路。

weixin_29230901的博客 225

Android开发必备:TBS腾讯浏览服务静态集成完整指南(附Demo下载)

本文详细解析了Android开发中TBS腾讯浏览服务的静态集成方案,通过对比动态集成,深入剖析了其核心原理与适用场景。文章提供了从环境准备、资源获取、项目配置到代码初始化的完整指南,并重点介绍了WebView与文件预览等高级特性的实战应用。针对集成过程中的常见问题,提供了详尽的排查清单与性能调优建议,旨在帮助开发者构建极致稳定、不依赖网络的WebView与文件预览功能。文末附有经过验证的Demo项目可供下载参考。

earth的博客 365

LeetCode高频题73. 矩阵置零

1)用辅助空间势必耗费额外空间 2)这种记录要变0或者1的事,可以原地记录,简单几个变量就行 3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。...

weixin_46838716的博客 639

基于Java的高校校园点餐系统

本文介绍了一个基于Java技术开发的高校校园点餐系统,该系统以B/S结构为基础,采用MySQL作为数据库,实现了一个高效、便捷的在线点餐平台。系统主要面向三类用户:管理员、用户和食堂工作人员,提供包括用户管理、食堂管理、菜单管理、订单管理等在内的多项功能。通过系统的具体测试,验证了其可行性和有效性,为高校师生提供了一个科学化、系统化的点餐服务。高校校园点餐系统的开发和实现,不仅提高了校园餐饮服务的效率和质量,也为师生提供了一个更加便捷的点餐体验。

a632341031的博客 837

【LeetCode-中等题】73. 矩阵置零

【代码】【LeetCode-中等题】73. 矩阵置零。

weixin_45618869的博客 988

Amber&pdb4amber | 准备PDB文件

PDB文件中唯一需要或有用的数据来设置AMBER模拟是:原子名称,残基名称,也许还有链标识符(如果存在多条链),以及重原子的坐标。除非加载额外的文库,否则非蛋白质结构(特别是低分子量配体)会引起问题;如果它们在PDB文件中的名称对应于AMBER库中的内部名称,则通常会识别水和单原子离子。–dry选项移除结构中的结晶水和–reduce选项在最理想的位置添加氢原子.为tleap程序调整从外部获得的PDB文件。

ASKCOS博客 896

基于Simulink的占空比调制DTC降低转矩脉动

修改传统SVPWM模块,输入占空比d和有效矢量索引,计算Ton​=d∗Tc​、Toff​=(1−d)∗Tc​,生成对称PWM波形(替代开关表直接输出)。:低速时(n<500rpm)减小dmax​=0.6(避免磁链畸变),高速时(n>2000rpm)增大dmax​=0.8(提升动态响应);kT​/kψ​:转矩/磁链误差增益(需整定,如kT​=0.02/(N⋅m),kψ​=0.1/Wb);(θ为电压矢量与磁链夹角)。② SVM-DTC(占空比计算模块启用,d0​=0.5,kT​=0.02,kψ​=0.1)。

amy_mhd的博客 87

LeetCode73 Set Matrix Zeroes

LeetCode73 Set Matrix Zeroes问题描述 Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. click to show follow up. Follow up: Did you use extra space

yanqinghe123的专栏 252

Windows11安装配置openclaw+deepseek(大龙虾)

密码可以随便设置(注意wsl系统本质上是linux系统,设置密码系统是不会像windows一样显示*点位符的),输入密码后敲回车再次输入密码,输入后敲回车。如果不小心关闭这个界面,可以再次进入powershell,输入wsl进行系统。在powershell中输入:curl -fssL https://openclaw.ai/install.sh | bash。下面是否通过第3方平台和openclaw交互,我选择j最后一项:skip for now。到下面这一步,可以通过键盘的左箭头选择Yes.

mahailiang的专栏 342

73. Set Matrix Zeroes

73.Set Matrix Zeroes Given amxnmatrix, if an element is 0, set its entire row and column to 0. Do itin-place. Example 1: Input: [ [1,1,1], [1,0,1], [1,1,1] ] Output: [ ...

TZJ0709的博客 138

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

蓝牙模块HM-10手册

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

【leetcode】(python) 73. Set Matrix Zeroes设置矩阵零

设置矩阵零DescriptionExample题意解题思路code1code2 73. Set Matrix Zeroes Medium Description Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in-place. Example Example 1: Inpu...

。 310

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【LeetCode-73】Set Matrix Zeroes

这道题我完全理解错了,我开始以为有一个0,那不就整行整列都为0,接下来不就连锁反应,整个矩阵都为0了,费解了!后来才知道不是那么回事,看了别人了才明白,我这个语文能力真是有点差。 /** * 这道题space复杂度降到了最低,通过第一行第一列来存储0的位置 * 1.先确定第一行和第一列是否需要清零,即,看看第一行中是否有0,记下来。也同时记下来第一列中有没有0。 * 2.扫描剩下的矩阵元素

cold2wind的博客 477

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

[单调栈][LeetCode 739M]每日温度详细解析

题面 根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。 例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。 提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度,都是在 [30, 100] 范围内的整数。 链接:https://leetcode-cn

weixin_43889457的博客 321

LeetCode 每日一题73. 矩阵置零

73. 矩阵置零 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 进阶: 一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。 一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。 你能想出一个仅使用常量空间的解决方案吗? 示例 1: 输入:matrix = [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0,1],[0,0,0],[1,0,1]] 示例 2

雷震子的博客 460

leetcode(73)_1784_easy_检查二进制字符串字段_python

检查二进制字符串字段 题目描述: 给你一个二进制字符串 s ,该字符串 不含前导零 。 如果 s 最多包含 一个由连续的 ‘1’ 组成的字段 ,返回 true​​​ 。否则,返回 false 。 示例 1: 输入:s = “1001” 输出:false 解释:字符串中的 1 没有形成一个连续字段。 示例 2: 输入:s = “110” 输出:true 提示: 1 <= s.length <= 100 s[i]​​​​ 为 ‘0’ 或 ‘1’ s[0] 为 ‘1’ 解法 题意就是说如果 0

qq_40137656的博客 240

day1-力扣数组练习题之217存在重复元素

题目:给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。 示例1: 输入:nums = [1,2,3,1] 输出:true 示例2: 输入:nums = [1,2,3,4] 输出:false 示例3: 输入:nums = [1,1,1,3,3,4,3,2,4,2] 输出:true 分析:这题其实比较简单,拿到手的第一反应是暴力循环解决,但提示超时了(哈哈哈哈哈哈哈哈),还有一个问题是刚开始用c写,但由于太久没有用过C,以

qq_38652677的博客 1650

LeetCode——0739.每日温度

739.每日温度 题目 请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。 例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/daily-temperatures

HizT_1999的博客 322

链表相加(二):高位在前的进位处理与栈解法

链表相加是经典数据结构问题,核心在于理解链表的单向遍历特性与加法运算的低位优先逻辑之间的冲突。当链表以高位在前(如1->2->3表示123)存储时,传统顺序遍历无法直接支持进位传播,必须借助栈或递归实现LIFO逆序访问。栈解法通过压入节点值、出栈模拟低位起算,天然适配进位传递路径,兼顾不修改原链表、边界鲁棒、工程可维护等优势。相比翻转链表的三遍历开销和递归的深度风险,栈解法在Python单链表逆序、C语言链表等多语言场景中展现出确定性与通用性,成为面试与生产环境的平衡之选。

weixin_34043301的博客 444

每日温度 — AI 第一次写被面试官吐槽了,Monotonic Stack 到底是个啥?

本文介绍了解决LeetCode 739"每日温度"问题的优化思路。从暴力O(n²)解法出发,逐步优化至使用单调栈的O(n)最优解。通过维护温度递减的索引栈,每次遇到更高温度时弹出栈顶元素并计算天数差。文章对比了Python和Java实现,分析了单调栈模式的适用场景(如股票价格、餐厅排队等),并提供了面试评分要点:需明确栈存索引而非温度值,注意边界条件和数据结构选择。该解法将看似复杂的嵌套问题转化为线性处理,展现了算法优化的典型思路。

liuzhupeng的专栏 104

代码随想录算法训练营DAY55|C++单调栈Part1|739.每日温度、496.下一个更大元素I

我么那这个题目中是求数组一里面每个元素,对应到数组二下标对应那个元素右边第一个更大的元素。输出在数组1相应的位置,所以我们的result肯定是要定义一个和。

糖炒栗子 1340

AI解结构化问题:早做决定提升准确率与执行效率

结构化问题指约束显性、解法范式化、状态可枚举的技术任务,如算法题、SQL生成和故障诊断。其核心原理在于利用题干关键词触发模式识别,跳过低效探索,直接锚定标准解法范式,从而压缩大模型在高维语义空间中的概率采样范围。该策略显著抑制幻觉、降低推理步数,并提升首次输出正确率与代码简洁性。典型应用场景包括LeetCode中等难度题求解、NL2SQL转换、Kubernetes故障定位及嵌入式固件校验。本文聚焦‘早做决定’这一可工程化落地的推理控制机制,结合约束提炼、类型识别与解法承诺三阶段实践框架,为AI在确定性任务中

chongyuwan4121的博客 424
上一篇: Go语言基础教程——map篇
下一篇: LeetCode 74,直击BAT经典面试题
TechFlow
博客等级 码龄7年 347粉丝 276原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值