上一页 1 2 3 4 5 6 7 8 ··· 14 下一页
摘要: 引言 我们如果要用Java编写程序的话就必须安装JDK,那么JDK是什么,另外安装JDK的同时,会提示用户需要安装JRE,一般这两个就像孪生兄弟一样,装了JDK之后,如果我们进入到安装路径下,会发现除了JDK外,还有一个文件夹JRE,那么什么又是JRE,最后都说Java是跨平台语言,因为它的代码是... 阅读全文
posted @ 2015-05-06 11:22 keedor 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 引言 为了学习Java网络编程,用一个QQ(屌丝版)作为例子练手,记录屌丝版QQ的开发过程,这里我们认为已经掌握其中的网络基础部分,即HTTP协议,TCP/IP协议等,在此基础上我们开始我们的Java网络部分的学习,我们要知道服务器和客户端是如何通信的,首先我们要了解Java网络知识中的一个很重要... 阅读全文
posted @ 2015-05-06 09:56 keedor 阅读(7762) 评论(0) 推荐(1) 编辑
摘要: 分析问题 问题只需要找到排序数组中某个数K的个数,由于已经是排序了,K一定是在一堆的,所以我们只需要找到第一个K的index1,然后找到最后一个K的index2就可以了 而寻找K的过程我们一般通过二分法查找,这样时间复杂度能降到logn 解决问题 我们通过二分法寻找k,如果中间的数小于k,那么在前半段找k;如果中间的数大于k,那么在后半段找k,那么如... 阅读全文
posted @ 2015-05-04 09:38 keedor 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 引言 STOI是很常见的一道题,leetcode上也有,字符串转换为数字一般都会有现成的函数去实现这样的功能,但有时候需要我们理解其中的具体实现,因为虽然是个很常见的问题,但实际上需要考虑的问题还是很多的,尤其是corner case的处理,而这类问题一般要考虑两点:一点是符号,另外一点是越界 分析问题 如果字符串前面有空格怎么办,一般来说中间是没有空格的,但是... 阅读全文
posted @ 2015-05-04 09:03 keedor 阅读(1565) 评论(0) 推荐(0) 编辑
摘要: 引言 一般这种不能用四则运算的题都只有用位运算来做,目的是加强大家对计算机计算的理解,真是有点扯淡呢 解决问题 首先我们得思考计算机是怎样做加法的呢,比如3加4,如果转换成二进制是0011和0100,加起来是7,也就是0111,相当于是两个二进制的异或运算 但是我们再举一个例子就是4加4,会发现,两个二进制是0100和0100,异或运算的话结果为0000,但是我... 阅读全文
posted @ 2015-05-03 19:50 keedor 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 引言 常见的约瑟夫环问题有用循环链表做的,有用数组做的,这里提供一个用数学公式做的,由此可见,很多计算机的问题如果最终用到数学的知识,时间复杂度会大大的降低 分析问题 首先我们对0到n-1删除第一个数进行分析,第一个被删除的数一定是序号为m-1的数,因为0号数了1,1号数了2,m-1号数了m,那么应该删掉m-1号,设m-1号是第k号,这里这样做是因为后面可以扩展,想扩展为m... 阅读全文
posted @ 2015-05-03 19:38 keedor 阅读(430) 评论(0) 推荐(0) 编辑
摘要: 分析问题 这个题目的关键点在于大小王可以看作任意的数字,那么我们就把这个任意的数字看作0也未尝不可,因为扑克牌中1-15都有数字,所以可以用0代表大小王 这样我们就将问题转换成了从0-15中抽5个数字,看是否连续的问题,由于0可以看作任意数字,所以我们可以用0去补那些空缺的数,比如0,1,3也算是连续的 要记住关键点还是这个任意数字上,考虑一个问题,就是如果这5... 阅读全文
posted @ 2015-05-03 19:11 keedor 阅读(707) 评论(0) 推荐(0) 编辑
摘要: 问题 n个骰子朝上的数之和为s,求s的所有可能以及概率 分析问题 如果是用笨方法,一般人最开始都会想到笨方法,那就是枚举法 举个例子,比如两个骰子,第一个骰子的结果为1,2,3,4,5,6,两个骰子的结果是2,3,4,5,6,7;3,4,5,6,7,8;4,5,6,7,8,9;……7,8,9,10,11,12,共三十六种,用n平方size的数组记录这36个结果 ... 阅读全文
posted @ 2015-05-03 18:52 keedor 阅读(1606) 评论(0) 推荐(0) 编辑
摘要: 总结 这两个东西一个很重要的区别是Hashtable是线程安全的,而HashMap是线程不安全的。 HashMap要实现同步则要通过额外的同步机制:一般Collections的一个静态方法得到解决:Map m = Collections.synchronizedMap(new HashMap(.... 阅读全文
posted @ 2015-05-03 11:06 keedor 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 总结 首先它们的底层实现不同,Arraylist和vector都是基于数组实现的,而Linkedlist是基于链表实现的 另外虽然vector和arraylist都同样是基于数组实现的,但vector的源码中有很多synchronized方法,说明是线程安全的,同步的,而Arraylist是线程不... 阅读全文
posted @ 2015-05-03 10:39 keedor 阅读(132) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 14 下一页