Java
文章平均质量分 57
Snipergzf
这个作者很懒,什么都没留下…
展开
-
JAVA中Collection和Collections的区别
1.java.util.Collection 是一个集合接口。 它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。以下接口实现了Collection接口: map,set,list,vector下图是collection接口定义的方法(截自jdk1.7官方文原创 2016-11-27 22:46:24 · 18070 阅读 · 15 评论 -
剑指Offer题目JAVA版思路与代码(八)
第二十九题:最小的k个数 题目描述: 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 思路: 有一个时间复杂度是o(nlog(k))的方法,需要用到最大堆,用k个单位的空间换取时间效率,并且适用于大数据,然而对于这个题目并没有太大的必要。 所以下面介绍一种时间复杂度为o(n)的方法,就是借鉴快速排序方法,寻找最小的原创 2017-01-26 14:59:16 · 696 阅读 · 0 评论 -
剑指Offer题目JAVA版思路与代码(七)
第二十五题:复杂链表的复制 题目描述: 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 思路: 第一步:扫描原链表,把复制的结点就连在原结点的后面;例如:(原链表)A->B->C —–> A->A’->B->B’->原创 2017-01-24 23:30:40 · 364 阅读 · 0 评论 -
剑指Offer题目JAVA版思路与代码(九)
第三十二题:把数组排成最小的数 题目描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 思路: 可以给出一个新的定义:两个数a、b,如果ab>ba,则定义a大于b,反之,则a小于b;根据此定义将数组中的所有数从小到大排序,然后依序组合成的数字就是最小数字。原创 2017-02-13 10:52:22 · 560 阅读 · 0 评论 -
String与StringBuffer以及StringBuilder的区别
String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改转载 2017-02-20 21:50:27 · 363 阅读 · 0 评论 -
剑指Offer题目JAVA版思路与代码(六)
第二十一题:栈的压入、弹出序列 题目描述: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的) 思路: 首先判断第二个序列中的数字是否在栈顶,如果原创 2017-01-21 22:45:07 · 407 阅读 · 0 评论 -
剑指Offer题目JAVA版思路与代码(五)
第十五题:反转链表 题目描述: 输入一个链表,反转链表后,输出链表的所有元素。 思路: 由于在做指针反转的过程中,对于结点i,需要知道它前一个结点h来作为反转后的下一个结点,以及后一个结点j来继续推进。 代码:/*public class ListNode { int val; ListNode next = null; ListNode(int val) {原创 2017-01-20 23:32:47 · 366 阅读 · 0 评论 -
剑指Offer题目JAVA版思路与代码(三)
第七题:斐波那契数列 题目描述: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39。 思路: 传统思路都是用递归思路,虽然递归的思路虽然思路清晰,代码简洁,但是利用递归的写法计算重复太多,所以当n变大之后,时间呈指数地增长。所以这个题目利用循环的思路时间复杂度是o(n),先计算f(1),f(2),然后利用前两个数再计算f(3),依次类推,计算f(n)。原创 2017-01-18 22:22:35 · 715 阅读 · 0 评论 -
剑指Offer题目JAVA版思路与代码(二)
第四题:重建二叉树 题目描述: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 思路: 这个题目考的是二叉树遍历相关的知识点。二叉树常见的遍历方式有三种,分别是前中后序。前序的遍历顺序是:根节点-左子树-原创 2017-01-17 12:03:50 · 403 阅读 · 0 评论 -
剑指Offer题目JAVA版思路与代码(一)
第一题:二维数组中的查找 题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路: 如题所述,可以发现右上角的数字是一行中最大的,又是这一列中最小的,那么我们可以从右上角开始查找。如果当前查找的数字小于target,删除当前行;如果当前查找数字大于target,则原创 2017-01-14 21:48:54 · 388 阅读 · 0 评论 -
剑指Offer题目JAVA版思路与代码(四)
第十二题:树值的整数次方 题目描述: 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 思路: 这个题目主要的考点一是base, exponent都有0,负数,正数的情况,二是base的exponent次方可以用o(logN)的时间复杂度计算得到。 代码:public class Solution { public do原创 2017-01-19 22:27:39 · 356 阅读 · 0 评论