上一页 1 2 3 4 5 6 ··· 30 下一页
摘要: 蛮力: 遍历数组,对每个元素都往前遍历所有元素,如果有发现比它小的元素,就count++。 最后返回count取模。 结果没问题,但超时哈哈哈,只能过50%。 归并法: 看讨论,知道了这道题的经典做法应该是用归并的思想,之所以用归并,是因为像上面我们直接比较a[i]后面的所有元素的话,肯定是O(n^ 阅读全文
posted @ 2019-04-04 23:07 汪神 阅读(471) 评论(0) 推荐(0)
摘要: 这是剑指第一次卡死我的题……记录一下 首先看题目: 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 一开始的思路: 一开始,我就直接蛮力,就按照它的描述,从2到根号 阅读全文
posted @ 2019-04-03 15:37 汪神 阅读(397) 评论(0) 推荐(0)
摘要: emm算法设计书上讲了个基于递归分治法的一个方法,大概思路就是把比如两位数的乘法需要4次乘法运算变成只需要2次。emm我感觉一般还没大到要分治法来什么吧,就直接写了个模拟笔算的方法。 看代码: 阅读全文
posted @ 2019-04-03 15:05 汪神 阅读(238) 评论(0) 推荐(0)
摘要: 搞了个HeapSort类,有个类变量type确定是大顶堆还是小顶堆。 注意,用堆的时候处理的数组是0元素不用的!! 上代码: 阅读全文
posted @ 2019-04-03 14:54 汪神 阅读(138) 评论(0) 推荐(0)
摘要: 在做剑指offer的时候,有一道替换空格的题,立刻就想到用这个split方法来做,但发现,这个方法会丢掉字符串最后的空格??? 百度后,知道原因,这里直接复制粘贴了: 在使用java中的split按照“\t”,拆分字符串的时候,发现如果最后的几个字段是空,只是用\t分割,是连着的\t的话,就不会被分 阅读全文
posted @ 2019-03-26 19:18 汪神 阅读(369) 评论(0) 推荐(0)
摘要: https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653192000&idx=1&sn=118cee6d1c67e7b8e4f762af3e61643e&chksm=8c990d9abbee848c739aeaf25893ae4382eca 阅读全文
posted @ 2019-03-24 23:16 汪神 阅读(725) 评论(0) 推荐(0)
摘要: 五、可中断获取锁的实现(独占锁的特性之一) 我们知道lock相较于synchronized有一些更方便的特性,比如能响应中断以及超时等待等特性,现在我们依旧采用通过学习源码的方式来看看能够响应中断是怎么实现的。可响应中断式锁可调用方法lock.lockInterruptibly();而该方法其底层会 阅读全文
posted @ 2019-03-23 18:03 汪神 阅读(601) 评论(0) 推荐(0)
摘要: 一、序言 Lock接口是juc包下一个非常好用的锁,其方便和强大的功能让他成为synchronized的一个很好的替代品。 我们常用的一个Lock的实现类(好像也是唯一一个只实现了Lock接口的类) 当你查看源码时你会惊讶的发现ReentrantLock并没有多少代码,另外有一个很明显的特点是:基本 阅读全文
posted @ 2019-03-23 00:25 汪神 阅读(956) 评论(0) 推荐(0)
摘要: 之前关于Java线程的时候,都是通过实现Runnable接口或者是实现Callable接口,前者交给Thread去run,后者submit到一个ExecutorService去执行。 然后知道了还有个FutrureTask接口,而且好像很有用,在刚看完线程池的相关源码还有点记忆的情况下,就再顺便研究 阅读全文
posted @ 2019-03-21 17:59 汪神 阅读(871) 评论(0) 推荐(0)
摘要: 我们知道,ExecutorService是一个抽象出线程池的一个接口,然后我们在使用线程池的时候,用的是Executors工具类中的一系列newCachedThreadPool() 等类似的方法,这些方法之间返回一个可以用的线程池。但其实这些方法都是在里面调用了一个类——ThreadPoolExec 阅读全文
posted @ 2019-03-20 15:04 汪神 阅读(368) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 ··· 30 下一页