
算法
月亮是我踹弯的
抱怨没有用,一切靠自己
展开
-
重学数据结构与算法(15~19)
15 | 定位问题才能更好地解决问题:开发前的复杂度分析与技术选型 我们前面学习的数据结构和算法思维,是解决问题和代码优化的基础。本节课开始,我们进入实战模块,从真正解决问题的角度来看看,如何将我们此前学到的知识灵活运用到实际工作中。 问题定位和技术选型 加入我现在面对一个实际的算法题,我需要从以下两个方面进行思考。 首先,我们要明确目标。即用尽可能低的时间复杂度和空间复杂度,解决问题并写出代码; 接着,我们要定位问题。目的是更高效地解决问题。这里定位问题包含很多内容。例如: 这个问题时什么类型原创 2020-09-25 18:21:38 · 174 阅读 · 0 评论 -
重学数据结构与算法(1~12)
01 | 复杂度:如何衡量程序运行的效率? 复杂度通常包括时间复杂度和空间复杂度,在具体计算时要注意以下几点: 它与具体常系数无关,O(n)和O(2n)表示的是同样的复杂度。 复杂度相加时,选择高阶作为结果,也就是说O(n^2)+O(n)和O(n^2)表示同样的复杂度。 O(1)也是表示一个特殊的复杂度,即任务与算例个数n无关。 时间复杂度与代码的结构设计高度相关,空间复杂度与代码中的数据结构的选择高度相关。 02 | 数据结构:将“昂贵”的时间复杂度转换成“廉价”的空间复杂度 我们需要从时间复原创 2020-09-25 15:15:16 · 921 阅读 · 2 评论 -
极客网个人刷题记录汇总
1.在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 /** * 思路:左下角的值是一行中最小,一列中最大的,所以从这个值开始比较,如果比这个值大,就将列加1,再比较, * 如果比这个值小,就将行加1,往上查,总的时间复杂度为O...原创 2020-04-10 18:33:35 · 448 阅读 · 0 评论