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

这代码谁写的,卡我半小时!

大家好,我是吴师兄。 小伙伴们在平时的开发过程中,都经历过这种情况吧:别人的代码运行好好的,自己 CV 过来却发现有问题,折腾了半天最后发现问题出在少数几行代码上。...在算法刷题的过程中,就有不少题目是这样的,明明思路很好想,代码也很好写,但就是提交不通过,问题就出在一两行代码上,而这一两行代码短则卡半小时,长则卡几天。...由此我们可以发现,整个过程就是一个不断深度遍历搜索到叶子节点的过程,一旦发现到某个叶子节点时,需要判断一下这条路径上的节点和是否和 target 相同,如果不同,需要去搜索其它的路径?...那么怎么去搜索其它的路径呢? 从当前叶子节点返回到它的父节点! 这个过程就是回溯的过程,因此我们需要保存之前的状态。 用什么数据结构保存呢? 栈!...每次遍历到一个新节点时,都把当前节点加入到一个栈中,如果需要返回到它的父节点,那么只需要把栈中的栈顶元素弹出即可。

34810

免费拿走我的代码可以,但请对使用我的时间付费

开源项目承载诸多开发者的心血与精力,他们不仅花费了大量的时间进行项目维护,还需要回答问题、读代码、merge PR。由此,本文提议,免费的代码大家可以共用,但应付费订阅,尊重开源项目维护者的劳动成果。...精疲力尽且充满失望情绪的项目发起者是造成众多有价值的项目停滞不前的重要原因: “我不会再投入时间和精力到开源项目中。...我为开源工作付出了很多自己的业余时间,这些时间原本可以用来陪伴家人、享受生活或者写作,然而这样的付出并没有收到任何物质方面的回报。我今天在此声明,决定终止目前自己所从事的所有开源工作。”...——Jeremy Miller,FubuMVC 的前项目负责人 “当我决定开始要小孩的时候,我可能会放弃开源,一旦有了小孩我的时间将远远不够用,我估计只有放弃开源工作才能真正解决我的问题。...当我谈到 “开源 ”时,我的意思是只要代码被许可,就可以用来构建专有的东西。这通常意味着许可证( MIT 、Apache 或者 BSD),但并不总是。

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

    我的代码这样优化,瞬间清爽多了

    关于代码优化,我之前也写了一篇文章 今天这篇文章我们又来聊聊代码优化。 隐藏行为细节 在平时的开发过程中,你肯定会碰到这样的业务,比如判断车速是否正常。...,原本代码的意图会渐渐不明确。...会对代码的阅读加大难度。 这里我主要的思想就是: “编写小而美的函数,将行为细节隐藏,进行模块化调用。”...order.buildDeliveryStatus(); //修改方法 } 我认为充血模型也是面向对象思想的很好实践,开发人员不需要知道行为具体细节。...我们将行为封装,从而实现行为的复用。 这篇文章到这里就结束啦,个人觉得编码细节对于程序员来说还是很重要的。有机会我还会写一篇编码优化的文章。

    30920

    for循环太Low?分享几段我工作中经常使用的for代码!

    在Python中,大家可能对她的印象是“Python不适合使用循环,因为效率低,速度慢!”,但是本文中将重点介绍她,并跟大家分享我工作常用的几段代码示例(如果你想实操,文末有数据下载链接)。...如上图所示,图中包含for循环过程中的三个部分,分别是漏斗、漏斗内的元素以及漏斗以下的结构,这三个部分构成了for循环的核心。...案例1:多数据文件的合并 如下图所示,本地目录内包含需要读取的多个数据文件,它们均为csv格式或txt格式,且数据结构相同。该如何基于Python的for循环语句实现数据的读取与合并呢? ?...案例3:词频统计 如下图所示,这是一篇新闻报道,如何基于该报道完成词频统计的操作?由于实际工作中评论数据的分析会涉及到敏感信息,故这里用新闻报道代替,但下文中所介绍的代码核心部分基本类似。: ?...结语 OK,今天的内容就分享到这里,如果你有任何问题,欢迎在公众号的留言区域表达你的疑问。同时,也欢迎各位大咖在留言区分享你们自己的策略,我会第一时间将你的留言分享给大家。

    1K40

    for循环太Low?分享几段我工作中经常使用的for代码!

    前言 不管是for循环还是while循环,都是任何一门语言的基础知识,同时也是非常重要的知识。借助于循环的策略,可以将很多重复性的问题完美地解决。...在Python中,大家可能对她的印象是“Python不适合使用循环,因为效率低,速度慢!”,但是本文中将重点介绍她,并跟大家分享我工作常用的几段代码示例(如果你想实操,文末有数据下载链接)。...案例1:多数据文件的合并 如下图所示,本地目录内包含需要读取的多个数据文件,它们均为csv格式或txt格式,且数据结构相同。该如何基于Python的for循环语句实现数据的读取与合并呢? ?...案例3:词频统计 如下图所示,这是一篇新闻报道,如何基于该报道完成词频统计的操作?由于实际工作中评论数据的分析会涉及到敏感信息,故这里用新闻报道代替,但下文中所介绍的代码核心部分基本类似。: ?...结语 OK,今天的内容就分享到这里,如果你有任何问题,欢迎在公众号的留言区域表达你的疑问。同时,也欢迎各位大咖在留言区分享你们自己的策略,我会第一时间将你的留言分享给大家。

    95020

    防御性编程失败,我开始优化我写的多重 if-else 代码

    ,组内另外一位同事对我的代码进行了 CodeReview,我的防御性编程编程没有幸运逃脱,被标记上了“多重 if-else ”需要进行优化,至此我的第一次防御性编程失败,开始了优化多重 if-else...之路,下面是我总结出的常用几种优化方式。...版本 Java8 几种常用的优化方式 提前使用 return 返回去除不必要的 else 如果我们的代码块中需要使用 return 返回,我们应该尽可能早的使用 return 返回而不是使用 else...1 : 2; 使用枚举 在某一些场景我们也可以使用枚举来优化多重 if-else 代码,使我们的代码更加简洁、具备更多的可读性和可维护性。...如何优化开头的代码 好了现在回到开头,如果是你会进行怎么优化,下面是我交出的答卷,大家也可以在评论区发表自己的看法,欢迎一起交流: public static void main(String[]

    23020

    这代码写的太烂了!你以为我真想写“垃圾代码”吗?

    3、何时重构 任何情况下我都反对专门拨出时间进行重构。重构本来就不是一件应该特别拨出时间做的事情,重构应该随时随地的进行。...何时不该重构:有时候既有代码实在太混乱,重构它还不如重新写一个来得简单。 重写而非重构的一个清楚讯号是:现有代码根本不能正常运作。...每当感觉需要以注释来说明点什么的时候,我们就把需要说明的东西写进一个独立的函数中。 如何确定提炼哪一段代码?寻找注释是一个很好的技巧。它们通常能指出代码用途和实现手法之间的语义距离。...把所有需要修改的代码放进同一个类中,如果眼下没有合适的类可以安置这些代码就创造一个。...你也许会看到某个类接口有一半的函数都委托给其他类,这样就是过度运用。 17、狎昵关系 有时会看到两个类过于亲密,话费太多的时间去探究彼此的private成分。

    98730

    反思我这五六年来写过的烂代码

    最近我开发完某个功能之后,在本地开发环境向产品演示并确认整个功能流程,这个时候我突然产生了一些困惑: 为啥我开发花了一天,演示只需要花费两三分钟呢?...我好像有点明白了,对于这个需求 开发需要一天,确实很麻烦 功能演示只需要两分钟,也没啥大的修改,确实挺简单的 那么,为什么产品理解的简单需求,开发却需要花费很多的时间来修改?...虽然这段代码也能满足业务要求,但我们需要花费比前一次改动更长的时间来查找需要修改的地方,同时这一次改动带来的影响也会叠加到下一次。...我向来是不太抗拒去修改旧代码的,甚至于对于自己编写的烂代码有一种耻辱感,看见了就会想着优化,但个人的精力总归有限的,有的技术债务需要耗费很多的时间,对业务而言却没有什么改变。...假设我们选择了第二种做法,很显然,这次需求太简单了,评估一天的工时,花半个小时搞完,剩下的时间就可以摸鱼了 改动:我们在UI组件里面添加了数据上报的功能 这样这个组件就包含了两个功能:UI展示和埋点上报

    22010

    我是这样理解--SVM,不需要繁杂公式的那种!(附代码)

    关于SVM,流传着一个关于天使与魔鬼的故事。 传说魔鬼和天使玩了一个游戏,魔鬼在桌上放了两种颜色的球。魔鬼让天使用一根木棍将它们分开。这对天使来说,似乎太容易了。天使不假思索地一摆,便完成了任务。...如果第二名是85分,那就会感觉安全多了,第二名需要花费很大的力气才能赶上自己。拿这个例子套到上面这幅图也是一样的。 上面这幅图delta左边的红点是一个安全警戒线,什么意思呢?...OK,理解到这第二层,已经能满足绝大部分人一窥SVM原理的好奇心,针对于面试来说已经足够了。...而SVM的理解和优化相对来说复杂一些,SVM转化为对偶问题后,分类只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算。...代码实现 新闻分类 GitHub:点击进入 6.

    1.1K11

    面试官:Handler内存泄露的原因是什么?我:就这?太简单了吧,但我却被挂了...

    image.png 前言 嗨,大家好,问大家一个“简单”的问题: Handler内存泄露的原因是什么? 你会怎么答呢? 这是错误的回答 有的朋友看到这个题表示,就这?太简单了吧。...Java有什么不一样吗 其实可以看到,在上述的代码中,我都加了一句 btn2.setText("2222") 这是因为在kotlin中的匿名内部类分为两种情况: 在Kotlin中,匿名内部类如果没有使用到外部类的对象引用时候...另外,我自己也珍藏了好几套视频,有需要的我也可以分享给你。 2、进行系统梳理知识,提升储备 客户端开发的知识点就那么多,面试问来问去还是那么点东西。...虚拟机原理+反射与类加载+动态代理+高效IO Android高级UI与FrameWork源码:高级UI晋升+Framework内核解析+Android组件内核+数据持久化 360°全方面性能调优:设计思想与代码质量优化...关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三。 以上这些内容均免费分享给大家,需要完整版的朋友,点这里可以看到全部内容。

    5.5K00

    在线求CR,你觉得我这段Java代码还有优化的空间吗?

    上周,因为要测试一个方法的在并发场景下的结果是不是符合预期,我写了一段单元测试的代码。写完之后截了个图发了一个朋友圈,很多人表示短短的几行代码,涉及到好几个知识点。 还有人给出了一些优化的建议。...单测 因为上面这个方法是可能在并发场景中被调用的,所以需要在单测中模拟并发场景,于是,我就写了以下的单元测试的代码: public class AssetServiceImplTest { private...AtomicInteger 因为我在单测代码中,创建了10个线程,但是我需要保证只有一个线程可以执行成功。所以,我需要对失败的次数做统计。...当然,因为有CPU时间片的存在,这10个线程会争抢CPU,真正执行的过程中还是会发生并发冲突的。 但是,为了稳妥起见,我们还是需要尽量模拟出多个线程同时发起方法调用的。...但是还是想问一下,对于这部分代码,你觉得还有什么可以优化的地方吗?

    83730

    #抬抬小手学Python# 用别人代码,完成我的工作,剩下的时间去摸鱼【附源码】

    将函数放到模块中 模块学习的过程,不能按照语法结构来学习,它是一种抽象的知识,是一种代码的设计方式。例如将写好的函授放到模块中。...", new="大佬的鱼香肉丝不放鱼") 直接导入模块中的函数,使用时不需要通过 模块名....,需要将更高级的内容放到模块中,也就是类。...时间 time 模块 时间模块是 Python 中非常重要的一个内置模块,很多场景都离不开它,内置模块就是 Python 安装好之后自带的模块。...time 方法 time 模块主要用于操作时间,该方法中存在一个 time 对象,使用 time 方法之后,可以获取从 1970年1月1日 00:00:00 到现在的秒数,很多地方会称作时间戳。

    48030

    【100 种语言速成】第 5 节:Kotlin

    Hello, World 我们可以从最基本的程序开始!这没什么不寻常的,除非你记得它在普通 Java 中有多糟糕: fun main() { println("Hello, World!")...} 对于一个合理的 hello world,整个事件花费的时间太长了: $ kotlinc hello.kt -include-runtime -d hello.jar && java -jar hello.jar...我在代码库中包含了一个允许 ./run file.kt 的简短脚本。 斐波那契 我们需要一些类型注释,感觉它们应该是可推断的,但它们都是完全合理的代码。...你甚至不能使用==, 你需要运行.equals(),但如果其中一方为空,那将真的崩溃,所以你需要先对双方进行空检查,然后.equals()。基本数据操作的样板数量太荒谬了。...还有其他 JVM 语言,如 JRuby、Clojure、Scala 等,但它们本质上是不同的语言,具有不同的语义和不同的互操作性故事。Kotlin 只是固定 Java,仅此而已。

    1.7K51

    React从入门到放弃,一个关于网页速度的故事

    然后我开始在 Kasta 工作,那里的 web 前端完全就是一团 jQuery 式的玩意儿。没人想要碰那些代码,因为你会花费数小时,甚至数天,来做一些最小的改动。...早在二月的某个时候,我偶然发现了 Intercooler.js。我不确定我以前是否见过它——也许我看过但一瞥而过——但这没关系。这一次,它引起了我的注意。...你需要服务器的一些支持,这样你就可以渲染部分结果——虽然只是一个优化,但确实非常重要。 还有一个备选库——Unpoly。...5 TwinSpark 为什么是一个好主意 我们需要从两个方面看待它:它是否对开发者友好以及它是否对用户友好。React 对前者优化,而对于后者来说是非常讨厌的。...从代码中移除 React 相关代码并将我们的 app 打造成一个服务端应用程序仍然花费了很多时间和精力。它仍然需要一些润色,但我们还是决定发布它来缩短时间。

    1K20

    Storm创始人Nathan Marz:反馈即一切

    Nathan:我十岁那年开始在自己的TI-82图形计算器上写程序。原因是我想在它上面开发游戏,也是因为那时我在数学课上感到太无聊了。...我理解写书需要花费大量精力,但未曾想真实付出远远超出我的预期。写作这本书尤其富有挑战,因为它试图涵盖一个宏大的主题。...在某个时间点,我已完成了半本书的写作,却意识到素材的组织方式并不妥当,于是我弃置了所有旧稿,转而另起炉灶。这样做完全是值得的,这从读者的反馈中可以得到证实。...相反,你应该直截了当地尽快打造出可用原型,继而通过迭代和改进学习问题域,当你对问题域的盘根错节有了清晰的理解后,再回过头来重新设计系统,使之具备通用和可扩展等特性。到最后一步才开始收紧代码,优化性能。...显而易见,我们尚不清楚如何编写完美代码——所有我使用或编写过的代码都存在Bug。因此,我在假设自己的代码有缺陷的前提下,设计并使系统尽可能运转起来(至少大多数情况如此)。

    92140

    前端 vs 后端:哪一个适合你?

    试一试水,看看当你用它的时候,其中一个方向是否真的能吸引到你。同时,你要意识到,无论你选择哪个,一开始都会很困难。我想说的是,在你决定要把重点放在哪里之前,给自己一年或两年的时间来研究整个流程。...这将给你足够的时间来解决最初的“哇,这太糟糕了,因为它很难”的问题,同时还能让你真正评估它是否是你喜欢使用的技术。 虽然每个人都有不同的品味,但是看看其他开发人员喜欢使用哪些语言和技术也是很有趣的。...此外,尝试找出市场上最需要哪种类型的开发人员。 我不知道前端和后端哪个工资更高,但有一些调查试图回答这个问题。...因此,你需要自己做好调查。这很简单,只需要查看求职公告板并搜索后端和前端技术,看看都有哪些。 我为什么选择后端 我想我应该在这里加上一段为什么我最终选择了后端,希望它可以在其他人做决定时帮助他们。...JavaScript 和前端语言对我来说总是缺乏组织性。我还热衷于优化代码性能。我喜欢想办法让事情运行得更好更快。后端似乎给了我更多的机会。 最后,我不是一个非常注重视觉或艺术的人。

    1.5K20

    实用的函数式编程

    不过这已经过时了 -- 我可以看出笔记本的模型老旧, 浏览器是个老版本, 翻盖手机与今天的智能手机也实在是相差甚远....使用这些只是一个熟悉程度的问题. 一旦你熟悉这些概念以后 -- 并不会花费太长时间, 编程会变得容易的多. 为什么变得容易了呢? 因为你不再需要跟踪系统的状态....在一个函数式编程语言中, 当你向一个栈 push 一个元素, 你将会得到一个新的栈, 原来的栈并不会发生改变. 这意味着减轻了程序员的负担, 他们所需要记忆的东西更少了, 需要跟踪的东西更少了....因而, 代码会更易写, 易读, 易于理解和测试. 那么, 你应该使用哪种函数式编程语言呢? 我最喜欢的是 Clojure. 因为 Clojure 极其简单....跟 Lisp 一样, Clojure 也是一个 同像性(Homoiconic) 的语言, 也就是说, 代码本身就是程序能够操作的数据. 这不难看出.

    1.1K20

    Clojure 开发那些事

    语法入门 括号 Lisp 语法最显著的特点是“括号多”,不过这只是其外在表现,内在表现是阅读代码的方式,需要从最里面的表达式开始,比如: ;; Clojure > (split (upper-case...,很幸运,Clojure 里面函数是一级成员,这意味着函数可以作为参数传入,也可以作为函数值返回,能够进行这两类操作的函数称为“高阶函数”(high-order functions),这在任何一门函数式语言中都很普及...,但在实现时,为了达到时间、空间上的高效,采用了非常复杂的算法,我到现在也还是一知半解,不是很清楚。...《The Joy of Clojure》一书中有简单介绍,不过我觉得初学者可以完全不用去关心实现的细节,在遇到性能问题时在考虑去优化。...out what header-names is header-keywords (map keyword header-names)] ;; etc ) tools.trace 上面介绍的方法都需要修改源代码

    1.6K20

    资深架构师谈Java——最牛逼的编程语言Java超越了所有咒骂它的“动态语言”Java的“继承人”没能超越它Java没有特别讨厌的地方结论程序员进阶方法

    由于盲目的推崇所谓“正宗的面向对象”方式,所谓“late binding”,这些语言里面有太多可以“重载”语义的地方,不管什么都可以被重定义,这导致代码具有很大的不确定性和复杂性,很多bug就是被隐藏在这些被重载的语言结构里面了...如果现在要做一个系统,真的宁可用Java,也不要浪费时间去折腾什么Scala或者Clojure。错误的人设计了错误的语言,拿出来浪费大家的时间。...很多人花了太多时间,折腾各种新的语言,希望它们会奇迹一般的改善代码质量,结果最后什么都没做出来。选择语言最重要的条件,应该是“够好用”就可以,因为项目的成功最终是靠人,而不是靠语言。...1、不管你是面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以学。 2、不管你是在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以学。...,JVM性能优化这些成为架构师必备的知识体系。

    86240

    我为女友做了一款App

    我:我们看《金刚大战哥斯拉》吧 女友:不,扎克·斯奈德的《正义联盟》怎么样? 我:不,太长了。《米纳里》怎么样? 女友:不,太严肃了。...... 怎么样? 所以,你懂的。...前端:React Native 我不想编写原生代码,因为……,我没时间做那个。跨平台开发显然更理想。据我所知,我的选择要么是 React Native,要么是 Flutter。...我认为,查询还可以优化,但是,我能让它工作就不错了。  Blob 存储:Azure Storage 我选择用它的唯一原因是,每月可以获得 100 美元的 Azure 免费信贷。...我可以在数据库中添加进所有电影。 2TimeLine  构建 App 开发应用花费的时间最少,这让我很沮丧。我花了 2-3 周时间才把应用构建到能运行的地步(除了一些小 Bug 的修复)。...这是我的机会: 我:我们用 WeWatch 吧 女友:不,那太费时间了。我们就看《空中大灌篮》吧! 看来,我还要做些改进。

    62720
    领券