Java
文章平均质量分 57
lyri
爱IT
展开
-
A题之养兔子
题目描述一只成熟的兔子每天能产下一胎兔子。每只小兔子的成熟期是一天。 某人领养了一只小兔子,请问第N天以后,他将会得到多少只兔子。输入描述:测试数据包括多组,每组一行,为整数n(1≤n≤90)。输出描述:对应输出第n天有几只兔子(假设没有兔子死亡现象)。输入例子:12输出例子:12时间限制 1000 ms 内存限制 32768原创 2015-08-13 10:16:55 · 1756 阅读 · 0 评论 -
LinkedHashMap深入学习
1、LinkedHashMap继承制HashMap,与之不同的是,LinkedHashMap重的节点LinkedEntry,双向链表来保存所有元素。。它记录了按照插入顺序排列的下一个节点和上一个节点; /** * LinkedEntry adds nxt/prv double-links to plain HashMapEntry. */ static class原创 2015-09-14 11:02:54 · 446 阅读 · 0 评论 -
HashMap源码学习笔记
HashMap的底层主要是基于数组和链表来实现的,它之所以有相当快的查询速度主要是因为它是通过计算散列码来决定存储的位置。HashMap中主要是通过key的hashCode来计算hash值的,只要hashCode相同,计算出来的hash值就一样。如果存储的对象对多了,就有可能不同的对象所算出来的hash值是相同的,这就出现了所谓的hash冲突。学过数据结构的同学都知道,解决hash冲突的方法有很多原创 2015-08-17 16:45:47 · 612 阅读 · 0 评论 -
华为上机题之输出身高差值最小的俩个人
要从5个人中选取2个人作为礼仪,其中每个人的身高范围为160-190,要求2个人的身高差值最小(如果差值相同的话,选取其中最高的两人),以升序输出两个人的身高。 Smple input:161 189 167 172 188 Sample outPut: 188 189 分析: 看到这个题,最小想到的全排问题,从5个人中抽2个人出来,一共有10中原创 2015-08-17 16:39:59 · 1125 阅读 · 0 评论 -
华为上机题之去除字符串中最大最小的数
输入一串数,以‘,’分隔,输出所有数中去掉最大值、最小值之后剩下的个数。(其中最大值与最小值可能有多个) Smple input :3,3,5,3,6,9,7,9 Sample outPut: 3 分析: 1)采用数组哈希法,但此处没有明确给定数字的范围,所以需要申请2的32次方个元素的素组,肯定不行啊。 2)使用HashMap,相对于数组原创 2015-08-17 15:44:34 · 1029 阅读 · 0 评论 -
String和StringBuffer的equals方法比较
String再熟悉不过了,通常考点在常量池上面。String和StringBuffer的区别,平时也只留意到一个是final类(String),字符串不可变;一个是普通类(stringbuffer),字符串可变。除此之外还有什么区别呢?下面来看看String和StringBuffer的区别,直接上代码:String s="abc";String t=new String("abc");原创 2015-08-15 23:05:04 · 4715 阅读 · 0 评论 -
A题之找K个最小的数
剑指offer上的一道题:输入n个整数,找出最小的k个数。例如输入4、5、1、6、2、7、3、8共8个数,最小的4个数为:1、2、3、4。分析:解法一:可以把它看车数组排序问题,先对数组排序,再取数组前k个数。各个排序算法中,快排是性价比比较高的了,时间事件复杂度为O(n*logn)。还有没有其他解法呢?解法二:快排思想派上用场了。快排算法中,我们通常要找一个参原创 2015-08-15 21:11:37 · 655 阅读 · 0 评论 -
A题之变态青蛙跳
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。分析:这是一个斐波拉契数列的引申问题,先来看看斐波拉契数列:nn>=2, f(n)=f(n-1)+f(n-2);如果这个题变一下“一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。”就成了典型的斐波拉契数列问题了。原创 2015-08-14 11:25:06 · 697 阅读 · 0 评论 -
去除重复字符并排序
运行时间限制:无限制内容限制: 无限制输入: 字符串输出: 去除重复字符并排序的字符串样例输入: aabcdefff样例输出: abcdef思路:这个题用数组来哈希,时间复杂度为O(n)1) 初始化一个int数组hash,数组的角标和数组的值正好构成一对;2) 遍历字符串,将每个字符放入数组中对应的位置,出现过得字符,其数组值为13)原创 2015-08-14 09:30:02 · 1989 阅读 · 2 评论 -
A题之拼音转数字
输入是一个只包含拼音的字符串,请输出对应的数字序列。转换关系如下:描述: 拼音 yi er san si wu liu qi ba jiu 阿拉伯数字 1 2 3 4 5 6 7 8 9输入字符只包含小写字母,所有字符都可以正好匹配运行时间限制:无限制内存限制: 无限制输入: 一行字符串,长度小于1000输出: 一行字符(数字)串样例输入: yie原创 2015-08-14 09:08:49 · 817 阅读 · 0 评论 -
A题之字符串末尾补0
按要求分解字符串,输入两个数M,N;M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0。例如:输入2,8, “abc” ,“123456789”,则输出为“abc00000”,“12345。678“,”90000000”思路:1)对每一个字符串的长度取模length%N,在字符串末尾补(N-length%N)个02)将所有字符串补0后的字符串拼接在一起3)拼原创 2015-08-14 08:45:57 · 1428 阅读 · 0 评论 -
char/byte/short类型的加法和类型转换问题
前天做360校招内推笔试题,其中有一道byte类型加法的问题:byte b1=1,b2=2;b3=b1+b2;final byte b4=4,b5=5;b6=b4+b5;问b3和b5能否正常赋值?答案应该是:b3不能正常赋值,需要类型转换,b3=(byte)(b1+b2);b6能够正常赋值。原因分析:在Java中,在基本类型进行算术运算的时候,会发生小字节类原创 2015-08-13 10:43:07 · 4361 阅读 · 0 评论 -
A题之NowCoder数列
题目描述NowCoder最近在研究一个数列:* F(0) = 7* F(1) = 11* F(n) = F(n-1) + F(n-2) (n≥2)他称之为NowCoder数列。请你帮忙确认一下数列中第n个数是否是3的倍数。输入描述:输入包含多组数据。每组数据包含一个整数n,(0≤n≤1000000)。输出描述:对应每一组输入有一行输出。如原创 2015-08-13 09:51:59 · 753 阅读 · 1 评论 -
Retrofit简单原理分析
Retrofit原理分析之前学习了怎么使用Retrofit,现在来学习它的原理。Retrofit使用接口+注解的形式来定义一个网络请求,在通过OkHttp来执行网络请求。现在有很多开源使用了注解Annotation,如Dagger2、ButterKnife等,以及Retrofit。所不同的是他们利用注解干的事却不一样。Dagger2、ButterKnife他们在编译期间就处理注解生成代码,提供依赖注原创 2016-09-30 12:00:01 · 3250 阅读 · 1 评论