![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 50
晴天M雨天
某互联网公司高级开发工程师
展开
-
一文学会算法复杂度分析,面试再也不用愁了。
1什么是算法复杂度 身为程序员的我们都知道程序=数据结构+算法 算法=逻辑+控制。当我们要解决一个问题的时候,必然会经过以下几个步骤 问题的理解 数据结构设计 算法设计 算法分析 程序实现与测试 所谓时间复杂度就是衡量一个算法效率的手段 2如何比较算法的效率呢? 也就是比较算法的所用时间,但是一个算法所需要的时间和一下3个因素有关,规模 输入 算法本身,举一个例子:现在需要把1-10的乱序扑克牌从小到大排列。10就是规模 ,输入就是乱序1-10的数字,算法就是看采取什么样的排序算法,就是上面说的算法设计。原创 2021-01-12 14:54:42 · 150 阅读 · 0 评论 -
2021-01-06
学习数据结构和算法要分三步走: 第一步基础,学习每个算法的基本思想,解题思路和应用场景; 第二步对学习的算法知识进行归纳总结,提升对算法的熟练度,做到融会贯通; 第三步则是提升思考高度,将各类算法之间的区别和联系搞清楚,做到举一反三。 以上就是学习的框架了,这个没啥捷径,那些一蹴而就的东西都是突击,我们需要的是内功,需要的是特长,记住慢就是快。 李笑来老师在书中提到,任何事情都有复利效应,我们要牢记这个效应,下来我们就是要和时间做朋友,见证学习的方法,我会用我的经历,让你们少走弯路。太阳底下无新鲜事,所以我原创 2021-01-06 18:46:05 · 59 阅读 · 2 评论 -
贪心算法之 ---糖果分配问题
贪心算法的核心思想,程序的每一步都是向目标结果靠拢,每一步都是最优解 最终结果就是最优解。 //老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。 // // 你需要按照以下要求,帮助老师给这些孩子分发糖果: // // // 每个孩子至少分配到 1 个糖果。 // 相邻的孩子中,评分高的孩子必须获得更多的糖果。 // // // 那么这样下来,老师至少需要准备多少颗糖果呢? // // 示例 1: // // 输入: [1,0,2] //输出: 5 //解释:原创 2020-12-21 21:10:06 · 971 阅读 · 0 评论 -
栈在jdk中的实现
类 public class Stack extends Vector 是泛型 泛型的存在是增加代码的通用性 查看api可以看到主要有一下几个方法 Modifier and Type Method and Description boolean empty() Tests if this stack is empty. E peek() Looks at the object at the top of this stack without removing it from the stack. E po原创 2020-12-11 17:56:56 · 173 阅读 · 0 评论