10 2017 档案
摘要:问题描述: 给定一数组ary,其元素有正有负,寻找ary的和最大的连续子数组,并返回其和。 例如数组: 最大连续子数组为:{5,-1,-2,4},其和为6。 实际上最大子数组问题在算法导论上引申自买股票获最大收益的问题,将来的股票价格会以预期价格的形式给出作为股票购买者的参考价。 数组元素可视为股票
阅读全文
摘要:问题描述: 给定一矩阵(二维数组存储)和一个目标元素K,其中矩阵的每一行从做到右递增,每一列从上到下递增,用尽量高效的算法判断目标元素K是否在存在矩阵中。 分析: 首先想到的就是暴力方法,依次遍历二维数组汇总每一个元素时左比较判断,但是很可惜效率并不高。 考虑到该二维数组与普通的二维数组不同,利用该
阅读全文
摘要:java原子类不多,包路径位于:java.util.concurrent.atomic,大致有如下的类: 普通的自增减(value++或者value--)操作为非原子操作,但是借助原子类包装的自增减操作的保证了原子性。 测试代码: 这是一段经典的多线程访问共享变量的实现线程安全的例子。 如果采用注释
阅读全文
摘要:写在前面: 之所以称作不完全总结,因为我其实没有完完全全地看完此书,但是涵盖了大部分重要章节;同时以下总结是我自己认为很重要知识,细枝末节处难免遗漏,还请详细参考原著。 转载请注明原文出处:http://www.cnblogs.com/qcblog/p/7704788.html 1、java内存区
阅读全文
摘要:问题描述: 实现一个栈,带有出栈(pop),入栈(push),取最小元素(getMin)三个方法。要保证这三个方法的时间复杂度都是O(1)。 问题分析: 假设存储元素的栈为ms栈; 主要的难点在于获取栈最小元素getMin()要保证其时间复杂度为O(1); 而且由于存在push()和pop()操作,
阅读全文
摘要:问题一: 给定一个正整数N,求其二进制形式的第一个比特位1(从低位到高位的顺序)。 例如,给定正整数12,其低8位二进制表示为:00001100 从低位到高位的顺序,第一个1出现在第三位。 版本一: 最低位开始,针对每一位进行与(&)操作判断是否为1,直到遇到第一个1为止。 算法实现(版本一): 版
阅读全文
摘要:书籍是人类进步的阶梯电梯(并没有) 推荐一些还算优质的书籍清单 大部分是我自己亲自读过的书(一般我会先考察电子版,觉得满意就会买纸质版回来读),真心觉得不错,剩余未读的书已纳入阅读候选区准备后续读完。 一本书能够出版,一定是通过作者、出版商反复琢磨推敲修订,在知识的准确性方面无疑是有保障的。另一方面
阅读全文
摘要:一、首先需要了解的几个前提 1、自动装箱过程是通过调用valueOf方法实现(如Integer.valueOf(10)),而拆箱过程是通过调用包装器的 xxxValue方法实现(如Integer.intValue(a))。 例如代码: 其自动装箱和拆箱的过程如下: 2、缓存 Integer、Shor
阅读全文
摘要:一、测试代码 二、输出结果 三、浅析 1、可变参数的实际上调用过程实际上是将参数组织成一个数组,然后再出入该数组作为形参调用方法。 例如test(1,2,3)的执行过程为: 从newarray指令可以看出就是组织成数组的过程。2、test(int i)方法被重载了一个可变长度参数test(int..
阅读全文

浙公网安备 33010602011771号