
Java
数据挖掘者
热爱大数据,对算法感兴趣,博客里写我对算法的理解。
展开
-
在MAC IDEA中出现如下File size exceeds configured limit (2560000). Code insight features not available问题的解决
在MAC IDEA中,导入二十多万代码的文件,出现了如下问题:File size exceeds configured limit (2560000). Code insight features not available 原因:IDEA对能关联的文件大小做了限制,主要是为了保护内存,默认值为2500kb,对于一般的java文件也够用了解决的方法:(1)打开Mac IDEA界面,如...原创 2018-05-10 20:38:45 · 8675 阅读 · 0 评论 -
Java, 构造函数介绍
构造函数介绍一,特点: 1.构造器必须与类同名(如果一个源文件中有多个类,那么构造器必须与公共类同名) 2.每个类可以有一个以上的构造器 3.构造器可以有0个、1个或1个以上的参数 4.构造器没有返回值 5.构造器总是伴随着new操作一起调用。 6, 使用super调用父类构造器的语句必须是子类构造器的第一条语句。二,构造器的作用 1,创建对象:任何类想要创建实例对象就必须具有构造函数原创 2017-02-19 13:43:17 · 2857 阅读 · 0 评论 -
结构型模式之一:适配器模式
适配器模式介绍一,结构型模式是描述如何将类与对象结合在一起的,形成一个更大的结构。结构型模式包括了七种:桥接模式,适配器模式,组合模式,装饰模式,外观模式,享元模式,代理模式。二,适配器模式(Adapter) 1,适配器模式(Adapter)是将一个类的接口转换成客户希望的另外一个接口。适配器使得原本的接口不兼容而不能一起工作的那些类可以一起工作。 2,使用条件: (1),你想使用一个已经存在原创 2017-02-18 22:51:07 · 294 阅读 · 0 评论 -
java, Statement类的介绍
一,Statement的介绍 1,Statement 是 Java 执行数据库操作的一个重要方法,用于在已经建立数据库连接的基础上,向数据库发送要执行的SQL语句。Statement对象,用于执行不带参数的简单SQL语句。 2,实际上有三种 Statement 对象,它们都作为在给定连接上执行 SQL语句的包容器: (1),Statement、 (2),PreparedStatement(原创 2017-02-18 21:42:52 · 10302 阅读 · 0 评论 -
Java中,组合和继承的区别
一,组合和继续的区别1,组合的例子:import java.util.*; //使用组合的方式实现目标class Animal{ public void beat() { System.out.println("心脏跳动"); } public void breath(){ beat(); System.out.prin原创 2017-02-18 15:27:05 · 944 阅读 · 0 评论 -
Java中,overload与override的区别
Java的overload(重载)与override(重写,覆盖)的区别一,overload(重载) 1,overload(重载)表示同一个类中可以有多个名称相同的方法,但是这些方法的参数列表各不相同(即不同的参数类型,不同的参数个数,不同的参数顺序,)。overload可以改变返回值类型。2,重载是一个类中多态性的一种表现。例如:public void m1(int x){ }public i原创 2017-02-18 14:40:57 · 4063 阅读 · 0 评论 -
Leetcode 115 Distinct Subsequences(不同的子序列)
一,问题描述 1,给出两个字符串S和T, 计算S中T的不同的子序列的个数,(S>=T)。一个字符串的子序列是由一个原始字符串通过删除一些字符(也可以不删除),但是不改变剩下字母的相对顺序的一个新字符串。如,ACE是ABCDE的一个子序列,但是AEC不是一个子序列的。2,例如: S=rabbbit, T=rabbit 返回: 33,解题思路: 这是一道用动态规划解答的题原创 2016-11-27 19:34:47 · 910 阅读 · 0 评论 -
RapidMiner 5.3.015源代码下载并且正确的运行
一,RapidMiner介绍 1, RapidMiner是一个开源数据挖掘工具,可以进行机器学习,数据挖掘,文本挖掘,预测性分析和商业分析,具有拖拽功能的图形化工具。无需编程。它开发且可扩展,拥有上百种数据载入,转化,建立和可视化的方法,可以连接到一系列复杂的数据源,如Excel,Access, IBM DB2, MySQL。你甚至可以很简单地利用RapidMiner提供的开放式扩展API将自己原创 2016-11-23 20:19:04 · 4942 阅读 · 1 评论 -
LeetCode 102 Binary Tree Level Order Traversal(二叉树的层次遍历)
一,问题描述: 1,给定一棵二叉树,返回它的层次遍历。 2,例如: 3,解题思路: 使用LinkedList queue=new LinkedList()。因为LinkedList具有队列的性质,即先进先出规则。然后统计每一层的节点个数,然后在每层从左到右输出节点。二,AC了的程序(使用Java实现的)import java.util.*;class TreeNode{ //节原创 2016-11-15 20:17:50 · 773 阅读 · 0 评论 -
Leetcode 90 Subsets II (打印不重复的子集)
一,问题描述:1,给定一个整数集合(集合元素具有相异性),求出所有的不重复的子集合。并且子集里<1,2>和<2,1>属于重复了的2,例如: nums=[1,2,2] 输出: [] [2] [1] [1,2,2] [2,2] [1,2]3,解题思路: 这题和第78题的思路一样的(在我的博客里有第78题的解),首先对集合进行排序,使用sort(nums),然后和78题的方法一样(使原创 2016-11-01 18:58:14 · 707 阅读 · 0 评论 -
Leetcode 78 Subsets(打印全部子集)
一,问题描述1,给定一个整数集合(集合元素具有相异性),求出所有的子集合。 2,例如给定集合为[1,2,3] 输出: [3] [1] [2] [1 2 3] [1, 3] [2 ,3] [1, 2] []3,解题思路: 使用位操作,不使用递归。首先,计算一下该数组nums一共有多少个子集,设数原创 2016-11-01 16:06:42 · 1305 阅读 · 0 评论 -
合并两个已经排序好的链表
一,问题描述 1,输入两个单调递增的链表,输出两个链表合成后的链表。新链表也是单调递增的。二,程序如下(Java实现):1,非递归合并有序链表import java.util.*;class ListNode{ int val; ListNode next; ListNode(int x) { val=x; }}public class原创 2017-02-19 14:33:44 · 2732 阅读 · 0 评论 -
Java多线程的题目
一,问题描述 1,有两个线程,一个是读线程,一个是写线程。还有一个队列。现在要求编写一个程序,实现读线程从队列中读取数据出来。写线程往队列中写入数据。二,实现的程序import java.util.concurrent.LinkedBlockingDeque; //阻塞队列(BlockingQueue),Java包含实现阻塞列表的LinkedBlockingDeque类import java.原创 2017-02-19 16:06:26 · 495 阅读 · 0 评论 -
Leetcode 150 Evaluate Reverse Polish Notation (求值逆波兰表达式)
一,问题描述 1,用逆波兰表达式法去计算算术表达式的值。其中,有效运算符为+,-,*,/。每个操作数可以是整数或者另一个表达式2,例如: 3,解题思路: 先定义一个栈用来存放数据的,然后对字符串数组进行从左到后进行扫描,如果遇到的是字符串符号(+,-,*,/),则从栈中取出两个整数进行符号操作的,再把结果放回栈中,如果遇到的是字符串整数,直接存放在栈中去,一直到字符串数组全部扫描完。二,A原创 2017-03-17 21:18:11 · 728 阅读 · 0 评论 -
java.lang.NoClassDefFoundError: com/google/protobuf/ProtocolMessageEnum的解决办法
一 在工程中,使用protobuf时候出现了如下:Error Message: java.lang.NoClassDefFoundError: com/google/protobuf/ProtocolMessageEnum........二 出现的原因:缺少protobuf-jar包。 解决的办法是下载相应的protobuf的jar然后导入工程中。1, 下载protobuf-java.jar...原创 2018-05-09 19:55:23 · 17392 阅读 · 1 评论 -
Java 斐波拉契高级问题(上台阶的问题)
一,问题描述 1,有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或者二级,要走上M级,共有多少走法?其中M取值范围为1~100,结果值需要Mod 1000000007的值。例如 输入 3 输出 2输入 100 输出6879951822,解题思路 这题是斐波拉契问题,即f(n)=f(n-1)+f(n-2)。如果使用递归的时候,n取100时,会超时。因此,我们原创 2017-04-27 21:17:08 · 1773 阅读 · 0 评论 -
IDEA创建servlet时找不到 import javax.servlet...相关类包的问题
一,在IDEA中,创建Servlet时候,当写入如下语句时:import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;i原创 2017-05-25 23:04:03 · 27214 阅读 · 5 评论 -
LeetCode 143 Reorder List
一,问题描述1,给一个单链表L: L0->L1->…..->Ln-1->Ln 。 重新排序成L: L0->Ln->L1->Ln-1->L2-Ln-2. 值得注意的是,您必须在不改变结点值的情况下执行此操作的。2, 解题思路如下: 首先先把单链表从中间切开,分为左右两个子链表。 然后,对右子链表进行逆序。 最后,把两个左右子链表进行合并起来,就可以原创 2017-03-16 18:23:17 · 330 阅读 · 0 评论 -
Leetcode 147 Insertion Sort List(插入排序列表)
一,问题描述1,使用插入排序方法来对单链表进行排序2,解题思路: 为了使得插入结点更加方便点,我们在单链表的头结点增加一个新结点(该新结点作为第一个结点)。然后,从第二个结点与下一个结点进行比较,如果下一个结点小于第二个结点的话,则把下一个结点从单链表取下,然后插入到第二个结点之前的已经排序好的结点中取,依次类推。最终使得单链表有序。二,AC了的程序(Java实现的)1, 第一种方法i原创 2017-03-15 21:44:10 · 634 阅读 · 0 评论 -
Leetcode 179 Largest number (最大的数字 和最小的数字)
一,问题描述1,给出一组非负整数,求这些非负整数可以拼接出的最大数字 2,例如,给出数组[3,30,34,5,9] ,拼接出的最大数字为9534330. 3,由于本题输入时一个整型数组,输出是一个字符串。因此,在输出前,可以考虑到数组进行一下排序。4,解题思路(求最大的数字的解题思路,求最小的数字的解题思路和求最大的数字的解题思路类似的): 先把数组转化成字符串数组,然后两两拼接进行原创 2017-03-22 23:09:06 · 990 阅读 · 0 评论 -
循环单词
一,问题描述: 1,如果一个单词通过循环右移获得的单词,我们称这些单词都为一种循环单词。例如:picture和turepic就是属于同一种循环单词。现在给出n个单词,需要统计这n个单词中有多少种循环单词。2,输入格式: (1) 输入包括n+1行; (2) 第一行为单词个数n(1<=n<=50) (3) 接下来的n行,每行一个单词word[i],长度length(1 ≤ length ≤ 50原创 2017-03-09 11:34:26 · 2536 阅读 · 0 评论 -
Java排序算法---->桶排序算法
一,桶排序算法(bucket sort) 1,基本思想 桶排序的基本思想是将一个数据表分割成许多个bucket(桶),然后每个bucket可以各自排序(可以采用不同的排序算法)。它是典型的分而治之的策略。2,基本流程 (1) 建立一堆buckets。 (2) 遍历原始数组,并将数据放入到各自的桶当中去; (3) 对非空的桶进行排序; (4)按照顺序遍历这些原创 2017-03-18 20:15:59 · 486 阅读 · 1 评论 -
Java排序算法---->归并排序算法
一,归并排序算法 1,归并排序的基本思路就是把数组分为两组A和B,如果这两组组内的数据都是有序的,那么就可以很方便的将这两组数据进行排序了。如果让这两组组内数据有序? 2,可以将A,B组各自再分成两组,依次类推,当分出来的小组只有一个数据时,可以认为这个小组组内已经达到了有序,然后再合并相邻的两个小组就可以了。这样通过先递归的分解数列,再合并数据就完成了归并排序。 3,归并排序算法是一种稳定的原创 2017-03-16 10:33:09 · 333 阅读 · 0 评论 -
Leetcode 103 ,Binary Tree Zigzag Level Order Traversal(二叉树Z形分层遍历)
一,问题描述1,1,给定一棵二叉树,从上到下,进行Z字行分层遍历的,即:本层的话从左打到右,那么下层就是从右到左,最后输出结果。2,例如: 3,解题思路: 这题和第102题解法类似,对102题的方法进行改造,使用两个Deque来实现,第一个Deque()实现本层的遍历,第二个Deque()实现下层节点的输入。二,AC了的程序(采用Java程序)import java.util.*;cl原创 2016-11-15 22:08:50 · 620 阅读 · 0 评论 -
Leetcode 239 Silding Window Maximum(滑动窗口的最大值)
一,问题描述 1,给定一个整数数组nums 和一个正整数k的滑动窗口,滑动窗口每次从左到右移动一个数字,返回每次滑动窗口中的最大值。2,例如: 输入: nums=[1,3,-1,-3,5,3,6,7] k=3 输出: 3, 3 ,5, 5,6 ,73,解题思路: 首先判断数组的长度len与k的大小,如果len<=k,则,只要找出数组nums中最大的那个值,直接返回原创 2016-10-30 17:06:12 · 1248 阅读 · 0 评论 -
Java,泛型的题目
一,定义泛型类,成员变量是Number类或其子类对象的数组,成员方法有:求数组元素最小值、最大值和平均值。创建泛型类对象,分别求Integer和Double型数组的最小,最大、平均值。二,按照题目要求,自己写的程序如下: Array.javapackage com.Shuzu3.java;public class Array <T extends Number>{ public Array(原创 2015-11-01 13:59:04 · 1803 阅读 · 0 评论 -
JAVA程序题
一,题目:实现两个线程,一个打印奇数,另外一个打印偶数,这两个线程并发. 以下,我写了两种方法可以供参考:第一种方法 Judge.javapackage com.jishuoushu.java;public class Judge implements Runnable{ public Judge(String name) { this.name=name;原创 2015-10-30 21:33:32 · 535 阅读 · 0 评论 -
Java中,生产者和消费者的问题
一,问题:生产者将生产出来的产品放入仓库中(仓库的容量为10),而消费者从仓库中取走产品(当仓库的产品数量为0时,不能取产品).使用多线程方法解答.以下是我写的解法:有四个文件组成.Cangku.javapackage com.procom.java;public class Cangku { public synchronized void addProduct() //生产者 {原创 2015-10-30 21:52:21 · 548 阅读 · 1 评论 -
Java中,Iterator的讲解
Java中,Iterator的讲解Iterator的用途: 第一,Iterator的定义,就是提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节。 第二,Iterator模式可以用来遍历集合类的标准访问方法,它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构。 第三,Iterator模式总是用同一种逻辑来遍历集合 for(Iterator it原创 2015-10-15 20:05:00 · 891 阅读 · 0 评论 -
JAVA中,接口和抽象类的区别
一,Java抽象类是指没有方法主体的方法声明,需要使用abstract关键字来声明。抽象类主要被子类继承的。子类继承抽象类,就可以根据实际的情况来实现抽象类中声明的抽象方法。 二,java中,是通过interface关键字来定义接口的,接口中声明的方法都没有方法体,都是public类型的。类的定义采用implements关键字来实现接口的。 三,接口和抽象类的区别 1, 抽象类可以提供某些方法原创 2015-10-20 19:56:36 · 733 阅读 · 0 评论 -
JAVA中,嵌套类的介绍
1,java中,允许在类中介绍类。这种声明在类的内部的类称为嵌套类,也可以叫内部类。 2,嵌套类对象可以访问创建它的外部类的所有属性和方法、 3,嵌套类通过在其外部类环境内的嵌套声明,不为同一包的其他类所见。可以支持更高层次的封装。 4,嵌套类可以很方便地定义运行时回调。 5,嵌套类在编写事件处理程序很方便。 6,被static修饰的嵌套类被称为静态嵌套类,静态嵌套类中可以声明static原创 2015-10-20 21:19:14 · 1361 阅读 · 1 评论 -
算法题:字符串的全排列
一,输入一个字符串,打印出该字符串中字符的所有排列。二,算法设计如下:import java.util.*;public class PaixuTest{ public static void Paixu(char [] str,int i) { if(i>=str.length) { return; } if(i==str.l原创 2015-11-03 23:53:55 · 416 阅读 · 0 评论 -
JAVA中,文件的输入输出(1)
一,从文件中读取数据package com.File1.java;//import java.util.*;import java.io.*;import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;public class ReadFile1 { public static原创 2015-10-19 21:28:30 · 881 阅读 · 0 评论 -
JAVA中,instanceof的讲解
JAVA中,instanceof的讲解一 instanceof是java中的一个二元操作符。 二 instanceof的作用是测试它左边的对象是否是它右边类的实例,返回的是boolean类型的数据。他是判断对象是属于哪个类别的举个例子 String st=”China”; boolean judge=s instanceof st; //此时judge的原创 2015-10-18 01:02:29 · 377 阅读 · 0 评论 -
Java中,ArrayList的讲解
一 ,ArrayList采用的数组形式来保存对象的,这种方式将对象放在连续的对象中,就像顺序表一样的,它的缺点,就是插入和删除操作非常困难,不过查询比较容易。 二, LinkedList采用的将对象存在独立的空间中,每个空间中还保存下一个链接的索引,就像链表一样,它的缺点,就是查询非常困难,要从第一个索引开始,不过它的插入删除操作容易。 三, ArrayList后面的尖括号里表示的是这个Arr原创 2015-10-16 20:10:48 · 955 阅读 · 0 评论 -
Java中,使用HashSet<E>类
一,编写一个程序,用它来存放5个字符串,然后获取它存放的元素的个数二,写的简单程序如下: Person.javapackage com.HashSet.java;public class Person { public Person(String name) { this.name=name; } public String getName()原创 2015-11-02 15:49:08 · 440 阅读 · 0 评论 -
Java 分治法 求解一组数组元素的最大值和最小值
分治法的思想: 将求出的小规模的问题的解合并为一个更大规模的问题的解,自底向上逐步求出原来问题的解。分治法的设计思想,将一个难以直接解决的大问题,分割成一些规模较小的相同问题,从小的问题一个个解决,分而治之。求解一组数组元素的最大值和最小值,传统的方法,我们可以使用遍历或者最简单的排序方法来实现,但是时间复杂度非常高,介于降低时间复杂度,我们可以采用分治法思想求出最大值和最小值。 步原创 2016-06-28 22:53:27 · 5768 阅读 · 1 评论 -
杭电ACM 1021题
一,题目的意思,就是F(0)=7,F(1)=11, F(n)=F(n-1)+F(n-2), (n>=2) 求F(n)能否被3整除,如果能被3整除的话,则直接输出yes,不能被3整除的话,直接输出no二,解题思路,不能使用递归,否则超时 可以发现规律,就是F(n)以4为一个周期,依次循环。所以不要用递归来做这题。有时候可以看看其他巧妙的解题思路。 F(0)=7 NO F(1)=11原创 2016-07-13 20:18:14 · 2112 阅读 · 0 评论 -
Leetcode 76 Minimum Window Substring(最小窗口的子串)
一,问题描述:1,给定一个字符串S和一个字符串T,在S中找到最短的窗口,该窗口包括字符串T中所有的字符,该时间复杂度为O(n)。 2,举个例如: S=”ADOBECODEBANC” T=”ABC” 输出: BANC。s=”ABCDEFEFEFDCA” t=”ACD” 输出: DCA3,解题思路: 总体思想就是先扫描一遍找到最后一个元素满足t字符串的,然后从原创 2016-10-30 15:03:19 · 731 阅读 · 0 评论 -
Leetcode 268 Missing Number
一,问题描述 1,给定一个数组,包含n个不同的数字,从0,1,2,3,…,n中,找到数组中缺少的那个数。2,例如 [0,1,3] 输出2输入: [0, 1 ,2 ,4] 输出3 输入:[1, 0] 输出 23,解题思路 这题要注意,就是数组可能是无序的,所以首先排序一下。然后从左到右开始扫描,如果碰到数组的元素不等于该元素的下表,直接把该元素等于数组原创 2016-10-18 22:21:10 · 364 阅读 · 0 评论