自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (1)
  • 收藏
  • 关注

原创 用并查集解 kick start的Wiggle Walk

kick start c轮第一题Wiggle Walk,受此处的启发,发现用可4个并查集来解,注意两点:1,我是用map而非数组来实现并查集的,因为担心上次内存溢出的问题重现;2,普通并查集不强调根的位置,此处不相同,根的位置代表了此段的极限,合并时应注意。ac的代码在Attempt 36 Jul 28 2019, 01:09 private Point findRoot(Map<P...

2019-07-28 01:43:31 248

原创 未解之题

kickstart B轮第二题Energy Stones,这里提供了java解法。此题用01背包来解,难点在于普通的背包,各个item加入的顺序是无所谓的,但此题的item(具体来说就是stone)不一样,有关系。关键是为什么要按this.seconds * other.reduce降序排列,没搞明白。再举个例子,c轮第三题Catch Some也是用背包来解。也是两维dp还不够,因为有个特殊的i...

2019-07-27 20:19:31 113

原创 竖向使用单调栈+横向使用单调队列,完美解决kick start c轮 Circuit Board

google的题果然都不是吃素的,值得细品啊,都是leetcode上的hard题变形+组合,如此题:Circuit Board,先从相对简单的set 1开始解, 按照官方解析中的“we first define Pi,j as the maximum number of contigious cells on the right of the cell i, j . We immediately...

2019-07-26 22:35:52 129

原创 求两侧最近的更小点,用单调栈解Largest Rectangle in Histogram和trapping-rain-water

参考了两种解法,最后用以中间的某点为高度,快速分别求左右边最近的比它高的点为整体思路,以最大栈为实现方式,实现了: public int largestRectangleArea(int[] heights) { int max = 0; Stack<Integer> maxst = new Stack<Integer>() { //简化版最大栈,直观表现为单调不...

2019-07-25 18:48:57 141

原创 由google kicstart 引出的堆溢出问题

kickstart c轮第一题Wiggle Walk看起来很简单,没想到却暗藏了内存溢出的坑。我很快实现,并发现怎么样都是RE,又不知道到底是什么错误,怀疑了各种比如数组索引溢出,甚至输入输出等,找了好久找不出来,烦死个人。最后为了测试极限情况boolean[][] visit = new boolean[R+1][C+1]; 改成了 boolean[][] visit = new boolean...

2019-07-24 21:26:16 111

原创 3sum 及TreeMap的线性遍历

此题我的思路是,先形成一个 num与其频率的 treeMap, 然后每次选定一个左边的num,这样其他两数必在此key的右边,而且其和也被决定了,可用左右两指针互相逼近的方法获得。遍历左边num的时间为O(n), 找右边两数也是O(n),所以时间复杂为O(n)。应该说这已经是优化过的算法了,然后在实现中[https://leetcode.com/submissions/detail/2456...

2019-07-24 01:42:30 186

原创 安装astview记

astview是一个eclipse的插件,可用于显示选定的java文件的ast.以前应该是用Install-Available Software的在线安装方式过。今天换了一个eclipse,想用同样方式却不知怎么不行了。后来按照https://www.eclipse.org/jdt/ui/astview/ 中的Manual方式,直接将org.eclipse.jdt.astview_1.1.9.2...

2019-07-23 12:19:35 701

原创 求幂算法及其背后的离散数学

参考:http://ju.outofmemory.cn/entry/158553此文由快速求幂算法讲起,讲到了其中的半群等离散数学的概念。并由此仿造出了其他api. 文章中提到“如果想学习这个算法的一些用法或者想知道更多这个算法背后的理论,请查阅这本叫做《Elements of Porgramming》,这本书中文名字叫做编程原本”。我有些兴趣,但是考虑到目前时间紧,暂时不看,先存在这里...

2019-07-22 17:00:11 474

原创 银联比赛之码队弟弟求和

官方给出的解答为:此题有三大关键点:1,我称之为求余的分配律,详见https://www.geeksforgeeks.org/modulo-1097-1000000007/( a + b) % c = ( ( a % c ) + ( b % c ) ) % c( a * b) % c = ( ( a % c ) * ( b % c ) ) % c( a – b) % c = ( (...

2019-07-22 00:09:39 201

原创 两种素数筛法

cd

2019-07-21 22:12:09 130

原创 运用排列组合直接解62. Unique Paths

题目:https://leetcode.com/problems/unique-paths/典型思路是用dp来解,时间,空间均为O(n): public int uniquePaths(int m, int n) { int[] ans = new int[n]; Arrays.fill(ans,1); for(int i=1;i<m...

2019-07-20 02:40:57 143

原创 别拿数组作为HashMap的KEY

数组作为key,只是数组的地址引用的hashcode,Arrays.hashcode静态方法倒是能够根据数组的内容创建相应的hashcode,问题是hashmap用数组做key时用的是前者的hashcode。所以应避免使用数组为键。如果一定要用数组来作为map的key值的话,我想到两种方法:1,将数组,先转化为string2,用list代替...

2019-07-20 01:38:36 4600

原创 Java中的装箱和拆箱,以及由自动拆箱引起的一次NPE

转自https://www.cnblogs.com/dolphin0520/p/3780005.html关键的话:当 "=="运算符的两个操作数都是 包装器类型的引用,则是比较指向的是否是同一个对象,而如果其中有一个操作数是表达式(即包含算术运算)则比较的是数值(即会触发自动拆箱的过程)。...

2019-07-19 20:33:06 222

原创 最小\大栈以及最小\大队列 单调队列

此题也可用单调队列来解:https://leetcode.com/submissions/detail/248883712/ 理由是最终队列中包括的所有元素,都是从它的左边元素(exlusive)到它这一段中,用时最长的 (官方提供的默认解法时间复杂度与我相同)。当然此处的单调队列与上面的略有不同,在于。但是后面我发现了一种更简练而且效率更高的方法:单调队列(我自己的命名,可以平均线性时间得到最大\小值)。结合最小\大栈的思路,和两个栈构成一个队列的思路完成。可在常数时间内得到栈的最值。

2019-07-19 01:36:46 255

原创 Convert Sorted List to Balanced Binary Search Tree 二叉树遍历中的自底向上

一般二叉树遍历都是自顶向下的,这样自然。但是也有用到自底向上的时候,如下例:https://leetcode.com/problems/convert-sorted-list-to-binary-search-tree/discuss/?currentPage=1&orderBy=hot&query=可观察到我的第一次ac和第二次ac,代码结构相同,关键区别在于第二次用到了自底...

2019-07-16 23:47:40 184

原创 基数排序

https://leetcode.com/problems/maximum-gap/用java实现了一下,采用LSD(最低位优先法):(未考虑有负数的情况) private static void radixSort(int[] nums) { int max = nums[0]; for (int i = 1; i < nums.length; ...

2019-07-07 02:48:02 91

原创 如何对map的entry进行排序

参考https://leetcode.com/problems/sort-characters-by-frequency/import java.util.Comparator;import java.util.HashMap;import java.util.Map;import java.util.Map.Entry;import java.util.Set;import java...

2019-07-07 00:31:09 1531

Pro Git 第2版英文

Pro Git 第2版英文

2019-03-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除