首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我曾经在极端愤怒的情况下做不出简单题!

大家好,我是吴师兄。 众所周知,LeetCode 上面的算法题分为三个级别,简单、中等、困难,但有时候明明标注的是简单题,但困难程度却不亚于中等题、甚至是困难题。 比如剑指 Offer 29....对于一个二维矩阵来说,它包含了如下的边界与打印顺序: 1、顶层,我们可以定义为 top,在顶层是按照从左到右的顺序进行打印 2、右列,我们可以定义为 right,在右列是按照从上到小的顺序进行打印 3、...底层,我们可以定义为 bottom,在顶层是按照从右到左的顺序进行打印 2、左列,我们可以定义为 left,在左列是按照从下到上的顺序进行打印 在打印的过程中,矩阵的可打印区间在不断的发生变化: 每当把从左到右把一行打印完毕之后...// top 表示顶部所在的层数位置,一开始在第 0 层 int top = 0 ; // bottom 表示底部所在的层数位置,一开始在第 matrix.length...- 1 层 int bottom = matrix.length - 1 ; // left 表示左部所在的列数位置,一开始在第 0 列 int left

59220

方法论:在不是太懂源码的情况下,我是怎么定位源码问题的?

但有时候也有可能是框架/工具的源码错误,虽然一般这种情况很少发生,因为一般框架/工具都会做了比较多的单元测试,经过开源社区的验证,出错的概率比较少,但也不一定所有情况都能测试到。...本篇文章讲解介绍我最近遇到的一个真实例子,在不是太懂源码的情况下,通过自己的一些经验、调试技巧,去定位问题发现问题在我的某个项目中,当我使用 pnpm i --fix-lockfile 时,一定会报如下错误...pnpm 源码调试之前看了神光大佬的调试小册,学到了很多调试相关的知识,感兴趣的可以学习一下一般情况下,如何知道一个开源仓库要怎么进行调试呢?...这里总结一下:pnpm i 先安装 pnpm 源码的依赖pnpm run compile,执行源码所有包的构建(pnpm 是 monorepo 仓库)用 node 执行 pnpm 的入口脚本下图是我在...里面用到了很多调试相关的技巧,这些技巧可以帮助我们,即使在不熟悉源码的情况下,也能深入源码进行定位问题这些技巧主要包括以下这些:全局搜索查找关键词/错误信息,找到相关的源码转化问题,将大的抽象问题,变小变具体在合理的位置打断点巧用条件断点

96020
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    方法论:在不是太懂源码的情况下,我是怎么定位源码问题的?

    本篇文章讲解介绍我最近遇到的一个真实例子,在不是太懂源码的情况下,通过自己的一些经验、调试技巧,去定位问题 发现问题 在我的某个项目中,当我使用 pnpm i --fix-lockfile 时,一定会报如下错误...pnpm 源码调试 之前看了**神光大佬的调试小册[2]**,学到了很多调试相关的知识,感兴趣的可以学习一下 一般情况下,如何知道一个开源仓库要怎么进行调试呢? 1....因此如何调试的问题就解决了。...这里总结一下: • pnpm i 先安装 pnpm 源码的依赖 • pnpm run compile,执行源码所有包的构建(pnpm 是 monorepo 仓库) • 用 node 执行 pnpm 的入口脚本...里面用到了很多调试相关的技巧,这些技巧可以帮助我们,即使在不熟悉源码的情况下,也能深入源码进行定位问题 这些技巧主要包括以下这些: • 全局搜索查找关键词/错误信息,找到相关的源码 • 转化问题,将大的抽象问题

    71210

    我在阿里巴巴是如何做高并发设计的!

    在当前互联网时代,高并发设计已经成为了许多企业必须面对的一个难题。特别是像阿里巴巴这样的大型电商平台,在承载数百万用户同时在线访问和交易的情况下,高并发处理显得尤为重要。...最少连接算法是根据服务器当前连接数的多少,将请求发送到连接数最少的服务器上,这种算法可以避免轮询算法中可能出现的过载现象,但是在某个短时间内连接数可能会急剧增加,而此时负载均衡设备无法及时响应。...加权最少连接算法是在最少连接算法基础上,为每台服务器分配一个权值,根据服务器权值和连接数来计算出分配请求的服务器,可以更好地调配不同容量的服务器。 我用的比较多的优化集群的负载均衡的策略有哪些呢?...数据的存储是如此之重要,以至于我们可以说,在许多情况下,数据库的选择和配置决定了应用程序的性能和扩展性。那么,如何优化数据存储呢?...在缓存的设计过程中,如何设计出高性能的缓存是一个非常重要的问题。 Part4.如何防止单点故障? 在高并发系统中,单点故障是一种常见的问题,可能导致系统崩溃、数据丢失和业务中断。

    20810

    我是如何做到在 5 分钟之内将应用大小减少 60% 的?

    移动设备的资源总是有限的。有限的电量,有限的存储,有限的处理能力,有限的内存,有限的网络带宽……无论你面对的是 Android 还是 iOS,这都是真理。 在前几个月,我在开发一个安卓应用。...大部分情况下它包含所有图片,图标和源文件,菜单文件和布局。 ? resources.arsc —— 这个文件包含了所有 value 资源。这个文件包含了你 value 目录下的所有数据。...你不能添加/删除/修改你的 XML,因为它们包含了你的布局。但是我们可以减小图片文件。 “shrinkResources” 属性将会移除所有在工程中没有用到的资源。...shrinkResources true //... } “resConfigs” 属性将会在构建过程中移除所有本地化资源。...而很多的支持库都可能有其它语言的本地化文件夹。这些是我不需要的。所以,添加下面的这些代码让应用只支持英语。

    1.1K20

    程序员自诉:我是如何工作3年在深圳买房的?

    在深圳这个寸土寸金的地方,每个人都对自己的未来充满了期待,我也一样。虽然我的家庭条件并不差,但是我希望凭借自己的努力可以更自由。...自我感觉非常良好,也让我看清楚了公司的发展瓶颈,这样的小型在线商城,在如此缺乏资源的情况下,短时间内是很难做起来的,对于一名技术人员,如果与创业公司一同成长,就要承担个人技术发展缓慢的弊端,并且遇到个人技术瓶颈等问题...是的,作为目标清晰的我,我必须要找到更好的方法快速提升自己各方面的能力,在创业公司学习和成长,作为一名毕业生来说,一年的时间足够了。...本来应届毕业生最好的去处应该是大企业平台,但是已经在创业公司路上的我,只有努力让自己的下一份工作进入一线互联网企业。...满足这种条件的房子价格要多少呢?

    2K110

    我是如何做到的:不切换 Git 分支,同时在多个分支上工作的?

    正在开发某个 feature,老板突然跳出来说让你做生产上的 hotfix 更是家常便饭,面对这种情况,使用 Git 的我们通常有两种解决方案: 草草提交未完成的 feature,然后切换分支到 hotfix...,需要和大家普及两个你可能忽视的 Git 知识点: 默认情况下, git init 或 git clone 初始化的 repo,只有一个 worktree,叫做 main worktree 在某一个目录下使用...接下来,你就可以在 feature2 分支上做一切你想做的内容了(add/commit/pull/push),和 main worktree 互不干扰 一般情况下,项目组都有一定的分支命名规范,比如 feature...,hotfix 目录下存放所有 hotfix 的 worktree,这样整个磁盘目录结构不至于因为创建多个 worktree 而变得混乱 在磁盘管理上我有些强迫症,理想情况下,某个 repo 的 worktree...那么如何解决呢?点击下方卡片,关注“日拱一兵”,正在连载Git的高级技巧! 灵魂追问 可以删除 main worktree 吗?

    1.5K20

    赢在 CSDN:我在 CSDN 的成长,“长风破浪会有时”,如何保证自己有持续写作的动力?

    文章目录 前言 一、如何结缘 CSDN? 1.1、我的“黑客之路”初探 1.2、CSDN 一眼看得到的优势是什么? 1.3、大学再遇 CSDN 二、为什么开始在 C 站输出内容?...刚好借社区此次“赢在 CSDN”---主题征文活动来回顾一下我一路以来风风雨雨的写作历程、在 CSDN 社区的成长以及如何保持自己有持续写作的动力。 一、如何结缘 CSDN?...不知不觉已经加入 CSDN 近 7 年了,去年才刚刚大学毕业的我推算的话在我高一的时候注册的 CSDN,有注意到的同学可能看到了在我的头像旁的 CSDN 社区的码龄,“已加入 CSDN 7 年”。...4.3、除了你自己没有人能把你打倒 这样的状态持续了几个星期,我发现这样是不行的,我开始尝试去改变自己的状态,但是不知道如何下手。...要保证每天的正向输出,确保每天都在进步,回首昨天,我没有后悔的事情。 踏踏实实的坚持做好每件事情,不要害怕失败,更不要自我怀疑。阳光且自信才是自己应有的标签。 与人交往中尽可能的换位思考。

    41730

    在中国,《我的世界》如何从“一款游戏”变成“一种教育”?

    当孩子绞尽脑汁思考如何让史蒂夫获取钻石镐,他们可能不知道鼠标键拖动的五颜六色的方框,就是一个个印象中枯燥乏味的代码。有趣、方便、零门槛成为这个教程的代名词。...而这本身也和《我的世界》的开放世界、无限创造力十分契合。 可以预见,《我的世界》对年轻一代的影响已经超乎想象。在网易代理的中国版正式上线前,《我的世界》在国内的发展潜力、玩家的需求并未被充分挖掘。...三、从“游戏”到“教育”,《我的世界》如何创造更大的想象空间?...在国内,随着网易代理《我的世界》中国版,其游戏之外的社会意义也在不断夯实,正如陈枫所说,《我的世界》拥有丰富的内涵,在科技、文化、教育、公益诸多领域都已经受到社会各界的关注及认可。...网易显然也意识到《我的世界》背后广阔的发展前景以及在国内教育领域的巨大潜力。

    1.2K110

    【Spring注解驱动开发】BeanPostProcessor在Spring底层是如何使用的?看完这篇我懂了!!

    那么,BeanPostProcessor在Spring底层是如何使用的?今天,我们就一起来探讨下Spring的源码,一探BeanPostProcessor在Spring底层的使用情况。...注意:这里,我列举几个BeanPostProcessor接口在Spring中的实现类,来让大家更加清晰的理解BeanPostProcessor接口在Spring底层的应用。...别急,我用一个例子来说明下,相信小伙伴们看完后会有一种豁然开朗的感觉——哦,原来是它啊,我之前在项目中使用过的!...:没错,我之前也在项目中使用过!...在IDEA的左下角可以看到方法的调用堆栈,通过对方法调用栈的分析,我们看到在执行Employee类中的setApplicationContext()方法之前,执行了ApplicationContextAwareProcessor

    65710

    论我是如何在没有可移动存储介质的情况下重装了一台进不去操作系统的电脑的

    由 ChatGPT 生成的文章摘要 博主在这篇文章中分享了一个有关在没有可移动存储介质的情况下如何重装进不去操作系统的电脑的经历。文章描述了博主帮亲戚检测电脑后,意外地导致电脑无法启动。...论我是如何在没有可移动存储介质的情况下重装了一台进不去操作系统的电脑的 前言 前几天推荐家里亲戚买了台联想小新 Pro 16 笔记本用来学习用,由于他们不怎么懂电脑,于是就把电脑邮到我这儿来让我先帮忙检验一下...,在经过检验没问题,激活了操作系统和 Office 以后,我突然发现这台电脑已经预分配好了磁盘分区:C盘150G,D盘800G… 于是,在考虑到普通人安装软件都会安装到 C 盘,而 C 盘又这么小的时候...在经过一些简单的查询后,还真让我找到了这么一个工具。 这个工具,就叫做 DriveDroid。...于是,我打开了 DriveDroid,创建了一个空的镜像文件并挂载为可读写的 USB 驱动器,随后在我的电脑上刷入了 Ventory,然后把 Windows 系统镜像扔了进去。 您猜怎么着!

    39620

    如何编排你的异步任务并发数量,在Webpack5中我找到了答案

    AsyncQueue 本质上就是一款任务调度器,那么在 Webpack 中它是如何使用的呢,我们先来看一看它的用法。...它需要等待已经在队列中的任务释放出空闲才可以执行接下来的任务。 代码上来说,即是当 item1、item2 加入队列会立即执行,此时 item3 在添加时会进入排队。...实现任务调度器 上边我们谈到过 AsyncQueue 在 Webpack5 中的基础用法,这里我会完全将 AsyncQueue 和 Webpack 解耦,单独来聊聊如何实现一款任务调度器。..._stopped 这个属性用来判断当前队列是否被暂停。 ArrayQueue 在初始化参数阶段,我们通过 new ArrayQueue 创建了一个保存当前执行任务的队列。...我希望的是当存在重复的 key 值时,我会用上一个相同 key 的处理结果来调用重复的 callback 即可,完全没有必要重新在进入队列处理一次。

    1.2K20

    我在B站学知识之小米手机如何查看曾经所有连接过的Wifi密码

    ---- 我在B站学知识之小米手机如何查看曾经连接过WIFI的密码 描述: 在使用小米、红米手机的童鞋,有两种方式获取连接过的WiFi密码: 第一种方式,是非常的简单但是只能查看当前连接到的WIFI密码...第二种方式,是在您想要查看曾经连接过的所有WIFI集齐对应的密码。...方式1.查看并分享当前连接到的WIFI密码 具体操作流程如下所示: 点击设置 点击WLAN 点击当前连接的WIFI(分享密码) 截取带二维码的屏幕 打开小米自带的浏览器 点击右上角的扫码图标...分享当前连接到的WIFI密码 方式2.备份导出手机中所有连接过WIFI的密码 我们可以通过手机自带的备份功能来备份手机的WALN数据,以查看手机中连接过WIFI的所有密码。...具体操作流程如下所示: 点击设置 点击我的设备 点击数据与恢复 (PS: 也可在设置中直接搜索备份与恢复) 选择手机备份恢复 1-4 输入锁屏密码 取消默认勾选只选择其他系统应用数据中的

    1.7K10

    Spring注解篇:@ConfigurationProperties详解!

    这种机制简化了配置管理,使得配置的变更更加灵活和动态。摘要本文将详细介绍@ConfigurationProperties注解的使用方法、工作原理以及在实际开发中的应用。...这些属性被定义在一个以database为前缀的命名空间下。...性能考虑:在某些情况下,频繁的配置更新可能会带来性能开销。核心类方法介绍@ConfigurationProperties注解的核心属性是prefix,它定义了配置文件中相关属性的前缀。...prefix = "database"属性指定了配置文件中相关属性的前缀。字段定义:类中定义了三个私有字段url、username和password,这些字段将被用于存储配置文件中的值。...通过本文的学习,我们了解到如何使用@ConfigurationProperties注解来绑定配置文件中的属性到Java对象,并探讨了其在实际开发中的应用。

    89921

    亲手打造属于你的 React Hooks

    为了创建它,我们将在钩子顶部调用 useState,并创建一个新的状态变量 iscopy ,其中的 setter将被称为 setCopy 。 最初这个值是假的。...在我的例子中,我将使用它与一个复制按钮组件,它接收我们的代码片段的代码。 要做到这一点,我们需要做的就是向按钮添加一个onclick。并在返回一个名为handle的函数时,将被请求的代码复制为文本。...回到我们的钩子中,我们可以创建一个名为 resetInterval 的形参,它的默认值为null,这将确保在没有参数传递给它的情况下状态不会重置。...在这种情况下,我们可以为浏览器返回默认的宽度和高度,例如,在一个对象内1200和800: // utils/useWindowSize.js import React from "react"; export...我希望能让您更好地了解何时以及如何创建自己的React钩子。您可以在自己的项目中随意使用这些钩子和上面的代码,并以此为灵感创建自己的自定义React钩子。

    10.1K60

    iOS_理解“属性”(property)这一概念

    有了这种“稳固的”的ABI,我们就可以在类的延展(extension)或类的实现(implementation)中定义实例变量了。...三、属性的特质: ​ 属性可以有用的特质分为4类: 1、原子性: atomic原子性访问: ​ 默认情况下,由编译器所合成的方法会通过锁定机制确保其原子性,如两个线程读写同一属性,那么无论何时,总能获得有效的值...一般情况下不要求属性必须是“原子性”的,因为这也不能保证“线程安全”(thread safe)。...以下是我在面试中遇到过的问题,归类整理了一下。 四、灵魂拷问 用assign修饰“对象类型”(object type)会如何? ​...__strong:强引用,保证在block执行完之前,对象不会被释放。

    61720

    为什么 JS 中的对象字面量很酷

    本文演示了 ES 6 如何解决上述问题,并使用额外的功能改进对象字面量。 在对象构造上设置原型 方法的声明 super 调用 计算属性名 image.png 1....在这种情况下,将在会抛出错误: SyntaxError: Duplicate __proto__ fields are not allowed in object literals 。...并确保原型中的 sumElements() 方法使用 this.numbers 正确访问数组。 super 存在清楚地表明继承的属性将被使用。...因为super 只能在简写方法中使用,所以在这种情况下调用它会抛出 SyntaxError: 'super' keyword unexpected here。...只要确保将它们包括在方括号中即可:{[Symbol('name')]:'Prop value'} 例如,用特殊属性 Symbol.iterator 并迭代对象自身的属性名称。

    1.1K10

    MVVM中实现 INotifyPropertyChanged 的 4 种方法

    在 MVVM 框架中,它确保 ViewModel 属性的更改自动反映在 View 中。这种自动同步消除了在底层数据更改时手动更新 UI 的需要,从而降低了复杂性和出错的可能性。...这就是发挥作用的地方,确保在 or 属性更改时更新 UI。...在这种情况下,每次 or 属性更改时,我们都必须通知用户界面该属性也已更改。...在这种情况下,Metalama 可能非常有益。Metalama 是一种工具,允许您使用 aspects、在编译器或 IDE 中执行的特殊自定义属性来自动化代码库中的重复性任务,并动态转换源代码。...INotifyPropertyChanged 您可以直接阅读我们的文章,了解如何使用 Metalama 在没有样板代码的情况下实现 INotifyPropertyChanged。

    37510
    领券