算法
算法
IT猫咪酱
成为更有价值的攻城狮
展开
-
【算法】借助LinkedList 类中的方法实现栈
1、栈的实现 1)栈的功能:进栈、出栈、返回栈口元素…… 2)详解的过程看代码吧: [java]view plaincopy importjava.util.*; //1借助LinkedList类中的方法实现栈 publicclassMyStack{ privateLinkedList<Object>li=newLinkedList&l...转载 2020-10-26 23:44:22 · 194 阅读 · 0 评论 -
【算法】有向无环图
拓扑排序有2中方法(最后结果可能不同,因为拓扑排序有多解)。 一个简单的求拓扑排序的算法是先找出任意一个没有入边的顶点,然后将它和它的边从图中删除。然后对剩余部分使用同样的操作。<code class="hljs cs has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border转载 2017-10-17 14:31:02 · 1020 阅读 · 0 评论 -
【算法】通俗易懂讲归并算法
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。 [cpp] view plain copy转载 2018-04-26 14:22:19 · 319 阅读 · 0 评论 -
【算法】买水问题-java代码实现
问题:有30个人,3个空瓶换一瓶水,问至少要买多少瓶才能保证30个人每个人都有一瓶水。 思路:设需要买水x瓶,喝水数为sum,只要空瓶数>3就可以继续换水。循环累加计算出sum>=30的最小数值 java代码实现如下: package algorithm; /** * Created by 然 on 2019/6/19. */ public class BuyWater ...原创 2019-06-19 19:12:18 · 975 阅读 · 5 评论 -
【面试题】二维数组中寻找数字
在一个二维数组中(每一个一维数组的长度相同),每一行都按照从左到右递增的顺序排序, 每一列都按照从上到下的递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数, 判断数组中是否含有该整数。 思路:矩阵有序,从左下角来看,向上递减,向右递增。 因此从左下角开始查找,比查找数字小,上移;比查找数字大,右移。 代码:时间复杂度O(m+n) public class Offer_twoA...原创 2019-07-17 11:40:42 · 192 阅读 · 0 评论