二叉树的深度_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/435fb86331474282a3499955f0a41e8b?tpId=13&tqId=23294&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking下午做到了这道题,看了牛客官方的解析文章,感觉又有新的收获。

二叉树的深度_牛客博客 (nowcoder.net)https://blog.nowcoder.net/n/b1e42f6a782545b3a120308127995922

分治法:

上了数据结构,对于分治法嘴上倒是能说个大概,但是一落实到代码上就显得捉襟见肘。为什么实际操作写不出来应用分治法思想的代码呢?题解又是怎么写出来的呢?为什么我的思路不是那么明显呢?

整理了题解的文章结构。首先,因为是树部分的题,那么就和递归绕不开关系,而分治法又是递归里重要的思想,噢,是这样,树——递归——分治法的思维就建立起来了。而我又是哪里出了问题导致想不到呢?仔细想了想,是递归和分治法的连接,写在书面上觉得好蠢啊,递归不是自然而然就想到分治法了吗?但是就是这个被忽略的小点让我举步维艰,一点一滴都不能放过。

好,问题到下一步:知道分治法,也知道分治法的意思,那么是哪里出不来代码呢?对着下图仔细分析发现,我在学的时候只专注于“懂个意思”,“知道个大概”,而没有把文字转换为代码。语言上的左边右边反映到代码是怎么表述的?看人家的核心示例代码,懂了,噢,文字上的左边右边反映到代码里就是两个边界,那么如何递归呢?就是不断更新两个边界的值,而这个left,right都是要我去写的。

这句话给我印象很深:

我认为这是递归的最精华的地方,不就是数学上的特殊情况吗? 一棵大树分析不出来,一个只有左右两个节点的树还不会分析吗?反正递归到最后都是到叶子节点,叶子节点下面没东西了所以记深度为0,算上它自己就+1,后面max语句又有点离散数学求合式公式的影子了……就是说,把每个节点都当做是一棵独立的树,要求出它的左右最深,再逐级上报(……)

模板:

看到解法2的两句话:

感觉又顿悟一点。想了想之前自己写的文章,虽然也给出了自己的思路,或者是一些精华,但是从来没有整理出一次具有普适性的代码,顶多是思路清晰了,最多是整理出来一些对应题型的知识点,但是没有进行完整代码层面上的总结归纳。看到这两句话像是被点醒了一样 ,代码也可以有模板啊,之前看老师给的代码,都没有往“规范化”这个方面去想问题,觉得那是顺理成章,自然而然的,但是背后还有学问。

要想进步,就要照着最优秀的那个人进行像素级模仿,一点一滴都不能偷懒。慢就是快,不能急。一丁点都不能急躁!

(为什么必须要加标签啊…只是个人的总结而已)

心得体会:分治法 || 做题也有模板相关推荐

  1. 2019ICPC女生专场比赛心得体会

    2019ICPC女生专场比赛心得体会 比赛环境 赛题链接 对参赛环境的感受 比赛解题感受 Problem A. Ticket Problem B. Gcd Problem C. Function Pr ...

  2. 算法设计与分析——分治法

    主要思想 (其实有这个思想也想不出来): 1.划分:整个问题划分成多个子问题 2.求解:求解各子问题的解 3.合并:合并子问题的解 (手说:"我会了",脑子:"不会&qu ...

  3. 分治法解决得大奖问题

    前言:在阿里前端测试在线编程时,突然蹦出一个C++的题目,一脸懵之后开始做题.果然,浪费了时间得结果就是上交了错误答案.所以还是要勤打代码啊( ̄▽ ̄)",所以写篇博客记录下来.以后记录就放博 ...

  4. 计算机知识上的收获,计算机实训收获和心得体会

    计算机实训收获和心得体会 某些事情让我们心里有了一些心得后,好好地写一份心得体会,这么做能够提升我们的书面表达能力.那么心得体会怎么写才能感染读者呢?下面是小编为大家整理的计算机实训收获和心得体会,供 ...

  5. eovs实训报告总结心得_实训报告心得体会范文大全

    1 实训报告心得体会范文大全 实训教学是培养学生的基本能力.职业能力.技术应用能力.创 新能力的重要途径 , 也是由知识向技能转化的重要手段 , 能体现人才 培养的应用型特色 , 是高职教育内涵的核心 ...

  6. 计算机课堂教学改革培训心得体会,课堂教学改革心得体会范文(精选6篇)

    课堂教学改革心得体会范文(精选6篇) 心中有不少心得体会时,就很有必要写一篇心得体会,这么做可以让我们不断思考不断进步.应该怎么写才合适呢?以下是小编为大家整理的课堂教学改革心得体会范文(精选6篇), ...

  7. 大学计算机基础VB笔记,大学计算机基础心得体会范文

    大学计算机基础心得体会范文 从某件事情上得到收获以后,好好地写一份心得体会,这么做能够提升我们的书面表达能力.那么心得体会怎么写才能感染读者呢?以下是小编为大家收集的大学计算机基础心得体会范文,希望能 ...

  8. C++开发系统学习总结及心得体会

    自从学习了做系统之后,我们已经陆陆续续地写了学生成绩管理,通讯录,ATM,图书管理这四个稍成型的系统,接下来我将总结一下在做系统过程中的心得体会. 一. 做系统首先也是最重要关键的一步:理清做系统的思 ...

  9. ACM本周搜索做题小结和心得体会

    这周除了接着看上次没看完剩下的题,主要的就是做题了 我把这周新学到的和以前还没总结过的以及做题心得再主要说一下 这周做题和看到的主要是以下这几类 我把这周做题时遇到的某几类题简单归了一下类然后总结 遍 ...

最新文章

  1. WordPress标签
  2. Asp.NET 中 Ajax 的配置使用
  3. git仓库迁移和更新远程仓库地址
  4. 本科 8年经验,20k的Offer,接还是不接?
  5. server 2008 服务器不能访问 java项目,Java 8上的SQL Server JDBC错误:驱动程序无法使用安全套接字层(SSL)加密建立到SQL Server的安全连接...
  6. 【Python】Numpy中伪随机数的简单使用
  7. FLY主题下载插件兼容php7适配emlog6.1.1
  8. 朝鲜红星操作系统落后当今水准约10年
  9. 深入理解HTTP协议(转)
  10. Android socketnetty实现
  11. 高校计算机实验室安全自查报告,学校实验室安全检查自查报告
  12. 操作系统原理(哈工大-李治军老师)实验三系统调用
  13. 解决SublimeText中文注释乱码
  14. 教你怎么用手机进入路由器管理界面
  15. sparkSQL写入hive报错:Exception thrown when executing query
  16. 程序员分哪几种?分别要学什么知识?工资怎么样?
  17. C语言的良好编程习惯
  18. sql server 系统表 介绍
  19. Python列表、元组、字典相关练习题记录——第三天
  20. 《小强升职记》作者谈“怎样达成目标”

热门文章

  1. GDC2017分享:移动VR开发者的赚钱之道
  2. php memcached 设置过期,memcached过期时间无效
  3. node.js通过edge访问.net动态链接库
  4. C++_new创建的数组作为参数传递
  5. Asp.Net 构架(HttpModule 介绍) - Part.3
  6. 解决Cannot load /usr/local/apache/modules/libphp5.so的方法
  7. Springboot07配制数据统一返回格式以及定义统一的异常处理类
  8. java基础—面向对象——变量的区别
  9. CSS3新单位vw,vh,vmin,vmax详解
  10. 新项目上传到码云托管