随笔分类 -  算法

无聊学学算法
摘要:package y2019.Algorithm.array; /** * @ProjectName: cutter-point * @Package: y2019.Algorithm.array * @ClassName: HeightChecker * @Author: xiaof * @Description: 1051. Height Checker * Students a... 阅读全文
posted @ 2019-07-03 18:15 cutter_point 阅读(198) 评论(0) 推荐(0)
摘要:package y2019.Algorithm.array; /** * @ProjectName: cutter-point * @Package: y2019.Algorithm.array * @ClassName: ArrayPairSum * @Author: xiaof * @Description: 561. Array Partition I * Given an ... 阅读全文
posted @ 2019-07-03 18:14 cutter_point 阅读(142) 评论(0) 推荐(0)
摘要:package y2019.Algorithm.array; /** * @ProjectName: cutter-point * @Package: y2019.Algorithm.array * @ClassName: TwoSum2 * @Author: xiaof * @Description: 167. Two Sum II - Input array is sorted ... 阅读全文
posted @ 2019-07-02 11:18 cutter_point 阅读(94) 评论(0) 推荐(0)
摘要:package y2019.Algorithm.array; /** * @ProjectName: cutter-point * @Package: y2019.Algorithm.array * @ClassName: MaxProfit2 * @Author: xiaof * @Description: 122. Best Time to Buy and Sell Stock ... 阅读全文
posted @ 2019-07-02 11:17 cutter_point 阅读(98) 评论(0) 推荐(0)
摘要:package y2019.Algorithm.array; import java.util.HashMap; import java.util.Map; /** * @ProjectName: cutter-point * @Package: y2019.Algorithm.array * @ClassName: MajorityElement * @Author: xiaof ... 阅读全文
posted @ 2019-07-02 11:16 cutter_point 阅读(77) 评论(0) 推荐(0)
摘要:package y2019.Algorithm.array; /** * @ProjectName: cutter-point * @Package: y2019.Algorithm.array * @ClassName: MaxProfit * @Author: xiaof * @Description: 121. Best Time to Buy and Sell Stock ... 阅读全文
posted @ 2019-07-02 11:16 cutter_point 阅读(78) 评论(0) 推荐(0)
摘要:package y2019.Algorithm.array; import java.util.ArrayList; import java.util.List; /** * @ProjectName: cutter-point * @Package: y2019.Algorithm.array * @ClassName: GetRow * @Author: xiaof * @De... 阅读全文
posted @ 2019-07-02 11:15 cutter_point 阅读(114) 评论(0) 推荐(0)
摘要:package y2019.Algorithm.array; import java.util.ArrayList; import java.util.List; /** * @ProjectName: cutter-point * @Package: y2019.Algorithm.array * @ClassName: Generate * @Author: xiaof * @... 阅读全文
posted @ 2019-07-02 11:14 cutter_point 阅读(257) 评论(0) 推荐(0)
摘要:凉凉,看来想做好一个题还不容易啊。。。 有点难受。。。 1.看看题目吧 给定一个有序数组,依旧是二分查找,不同之处是如果没有找到指定数字,需要返回这个数字应该插入的位置。 本来想想着不就二分查找嘛,分分钟搞定。。。结果悲剧了,小瞧了这题了,活活被气死 2.上代码 废话不多说了,可恶上代码吧 先来看看 阅读全文
posted @ 2019-07-01 10:16 cutter_point 阅读(182) 评论(0) 推荐(0)
摘要:来来来,今天就跟hashmap杠到底。。。 不要叫我杠精了,主要是还是被问到hashmap的时候,我并不能很清晰明了得告知这种数据结构到底是一个什么构造,里面细节并不了解 既然这样,我们就把他解析一波,今天这篇也算是hashmap的收官之作了,主要用来红黑树部分我之前有博文写过,但是不用深究 自己实 阅读全文
posted @ 2019-06-27 12:01 cutter_point 阅读(788) 评论(2) 推荐(0)
摘要:前提知识 写在前面,为什么num&(length - 1) 在length是2的n次幂的时候等价于num%length n - 1意味着比n最高位小的位都为1,而高的位都为0,因此通过与可以剔除位数比n最高位更高的部分,只保留比n最高位小的部分,也就是取余了。 而且用位运算取代%,效率会比较高。 基 阅读全文
posted @ 2019-06-26 18:10 cutter_point 阅读(3329) 评论(0) 推荐(0)
摘要:最近面试被问到hashmap的实现,因为前段时间刚好看过源码,显得有点信心满满,但是一顿操作下来的结论是基础不够扎实。。。 好吧,因为我开始看hashmap是想了解这到底是一个什么样的机制,具体有啥作用,并没有过于细节去了解,所以问到细节的地方就难免漏洞百出, 回来之后,决定吧容器类的实现原理,去专 阅读全文
posted @ 2019-06-25 11:23 cutter_point 阅读(317) 评论(0) 推荐(0)
摘要:因为最近小米电话面试被问到如何判断一个链表是否有环,那今天正好实现以下这个算法 1.链表 内部类的使用,是为了方便调试 测试类: 结果: 测试一: 测试二: 从这里我们可以判断到第二个方法并不能定位到产生环的节点是哪个节点,并且循环次数比第一个多 总结: 方式一:对空间占用比较大,但是时间复杂度底, 阅读全文
posted @ 2019-06-24 10:23 cutter_point 阅读(458) 评论(0) 推荐(0)
摘要:二叉树节点插入 0.如果只有一个节点,那么就直接作为根,涂黑,如果父为黑,或者祖父为空,那么不做操作 1.叔叔节点不为空且为红 那么就修改父,叔叔,祖父节点颜色,最后把当前节点设置为祖父节点,在进行平衡 2.如果父为右节点,并且叔叔节点为空或者为黑,当前节点是右节点,如果父不为空, 那么把父设置为黑 阅读全文
posted @ 2019-06-05 10:50 cutter_point 阅读(641) 评论(0) 推荐(0)
摘要:我真是服了。。。。一段时间没用,快排都不会了,实打实写了半天,细细回想一下为什么会写那么久写不出来??? 1.没有吧概念理解清楚就开始动代码,致命错误 2.无法准确明白前后遍历索引终止位置 3.习惯重低位向高位进行索引,导致中间索引位置和真正的中间位置相差一位,因为我们比较的时候,是按照从小到大的顺 阅读全文
posted @ 2019-03-13 11:45 cutter_point 阅读(214) 评论(0) 推荐(0)
摘要:首先看看这换个数据图 邻接矩阵 dijkstra算法的寻找最短路径的核心就是对于这个节点的数据结构的设计 1、节点中保存有已经加入最短路径的集合中到当前节点的最短路径的节点 2、从起点经过或者不经过 被选中节点到当前节点的最短路径 以这个思路开始,就可以根据贪心算法,获取每一步需要设置的值,每一步加 阅读全文
posted @ 2017-09-05 11:14 cutter_point 阅读(644) 评论(0) 推荐(0)
摘要:首先我们获取这个图 根据这个图我们可以得到对应的二维矩阵图数据 根据kruskal算法的思想,首先提取所有的边,然后把所有的边进行排序 思路就是把这些边按照从小到大的顺序组装,至于如何组装 这里用到并查算法的思路 * 1、makeset(x),也就是生成单元素集合,也就是每一个节点 * 2、find 阅读全文
posted @ 2017-08-28 11:15 cutter_point 阅读(698) 评论(0) 推荐(0)
摘要:package cn.xf.algorithm.ch09Greedy.util; import java.util.ArrayList; import java.util.List; /** * 堆构造以及排序 * * .功能:堆的构造 * 1、堆可以定义为一颗二叉树,树的节点包含键,并且满足一下条件 * 1) 树的形状要求:这棵二叉树是基本完备的(完全二叉树),树的每一层都... 阅读全文
posted @ 2017-08-27 17:04 cutter_point 阅读(249) 评论(0) 推荐(0)
摘要:截图: 结果: 阅读全文
posted @ 2017-08-13 14:21 cutter_point 阅读(594) 评论(0) 推荐(0)
摘要:问题: * 对一组物品: * 重量为:w1,w2,w3....wn * 价值为:v1,v2,v3,....vn * 和一个可以存放重量为W的背包 * 求这些物品装进去如何才会是最右价值的装法 解题思路: 对于这些物品进行分类,判断第i个物品是否需要加入背包 获取到的结果就是,放入前i个物品进入重量是 阅读全文
posted @ 2017-08-07 16:38 cutter_point 阅读(429) 评论(0) 推荐(1)