自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

转载 Java_字符串匹配算法总结

字符串模式匹配算法(string searching/matchingalgorithms)转载自http://blog.csdn.net/chndata/article/details/43792363顾名思义,就是在一个文本或者较长的一段字符串中,找出一个或多个指定字符串(Pattern),并返回其位置。这类算法属基础算法,各种编程语言都将其包括在自带的String类函

2017-10-28 10:58:41 578

原创 Java_字符串模式匹配

暴力破解法(Brute-Force)主字符串的长度为n,子串的长度为m。将主字符串与子字符串进行逐一比较,若主串与子串相等,加一。若匹配最后不想等,则从主串下一索引开始重新匹配。最多需要比较(n-m)*m次。public class BruteForce { public static int BF(String S,String P) { int index=-1; i

2017-10-28 09:49:41 512

转载 Java中Iterable和Iterator的辨析

1、Iterable接口Iterable接口 (java.lang.Iterable) 是Java集合的顶级接口之一。我们首先看下这这个接口在JDK中的定义:package java.lang; public interface Iterable{ Iterator iterator(); } 123456(1)可见,Iterable接口中只包含一个方法,就

2017-10-26 14:55:19 224

原创 Java_快速排序

快排思路:1.随机打乱所有数,保证数据的随机性。2.需要两个辅助函数,一个是交换函数,一个是分区操作函数。3.先从序列中挑取一个数,以该数作为基准,所有比基准大的数方在基准后面,比基准小的数放在基准前面。基准函数:选取第一个数作为基准。选取头尾两个指针,将头指针向右移动,尾指针向左移动。如果头指针位置元素小于基准,则将头指针向右移动,如果尾指针元素大于基准,则将尾指针向左移动。直到

2017-10-25 20:52:57 246

原创 Java排序之归并排序

归并排序有两种方式:采用递归的方式,从顶向下递归。采用非递归方式,两两归并,自底向上。归并排序的核心都是归并操作:1.申请空间,使其大小为两个已排序的数组大小之和,用来存放排序之后的数组。2.复制数组,将数组a复制到辅助数组aux2.分别指定已排序的两个数组头结点。3.分别比较两个数组头元素,将较小值放入数组中。4.重复3,直至全部排序完。package Suanf

2017-10-25 09:10:09 242

原创 Java排序之选择排序、插入排序、希尔排序、冒泡排序

排序算法package Suanfa;public class Suanfa1 { public static void sort(Comparable[] a) { } public static boolean less(Comparable v, Comparable w) { return v.compareTo(w)<0;//判断v是否小于w } pub

2017-10-23 21:32:00 423

原创 Java_小题大做

求数组长度时用a.length;求集合长度时用a.length();

2017-10-23 20:54:44 208

原创 Comparable接口与Comparator接口

Comparable接口内部只有一个要重写的方法int compareTo(Object obj)。该方法返回一个整数值,实现该接口的类必须实现该方法。当一个对象调用该方法与另一个对象比较时,obj1.compareTo(obj2)如果该方法返回0,则表明这两个对象相等。(并不意味值obj1.equals(obj2)=true,单最好这样)如果大于0则obj1>obj2,如果小于0则o

2017-10-22 15:37:10 256

原创 Collections工具类

Java提供了一个操作Set、List、Map集合的工具类:Collections,该工具里提供了大量方法对集合元素进行排序、查询和修改操作。(1)sort()排序方法        函数定义:public static > void sort(List list) 根据元素的        自然顺序对指定列表按升序进行排序。        参数:要排序的列表。       

2017-10-22 11:42:54 245

转载 Arrays用法整理

1.  asList方法  @SafeVarargs public static T> ListT> asList(T... a) { return new ArrayList(a); }   使用该方法可以返回一个固定大小的List,如: ListString> stringList = Arrays.asList("Welcome", "To", "Ja

2017-10-22 11:05:02 217

原创 Java_集合(Set、List、Queue)

什么是集合:Java中的集合,就是保存对象的集合。是一种只能用来保存对象的集合。Java集合包括四种:Set、List、Queue、Map。其中Set代表无序、不可重复的集合。List代表有序、重复的集合。Map代表具有映射关系的集合。Queue代表一种队列集合实现。Java中的集合类主要有两个接口派生而来:Collection接口和Map接口。Collection接口

2017-10-21 15:54:59 461

转载 Java字符串

String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全)查看 API 会发现,String、StringBuffer、StringBuilder 都实现了 CharSequence 接口,内部都是用一个char数组实现,虽然它们都与字符串相关,但是其处理机制不同。String:是不可改变的量,也

2017-10-21 08:43:57 200

原创 Lambda表达式与匿名内部类的联系和区别

联系:lambda表达式创建的对象与匿名内部类生成的对象一样,可以直接调用接口中继承的默认方法。区别:1.匿名内部类可以为任意接口创建实例,不管接口中包含多少个抽象方法,只要在匿名内部类中实现所有抽象方法即可。   但在lambda表达式中只能为函数式接口创建实例。2.匿名内部类可以为抽象类甚至普通类创建实例;但lambda表达式只能为函数式接口创建实例。3.匿名内部类实现

2017-10-19 16:02:38 1836

原创 内部类

package learnJava;public class NeibuLei { private double weight; private String prop="外部类的实例变量. "; public NeibuLei() {} public NeibuLei(double weight) { this.weight=weight; } //定义一个非静态内部类,用p

2017-10-18 22:10:45 247

原创 java_接口和抽象类与设计模式

接口和抽象类都具有以下特征:接口和抽象类都不能被实例化,他么都位于继承树的顶端,用于被其他类实现和继承。接口和抽象类都可以包含抽象方法,实现接口和抽象类的普通子类必须实现这些抽象方法。接口和抽闲类的不同:接口作为系统和外界交互的窗口,接口体现的是一种规范。接口规定了实现者必须向外提供哪些服务。当在一个程序中使用接口时,接口时多个模块间的耦合标准;在多个应用程序之间使用接口接

2017-10-18 09:09:21 652 1

原创 Java_final修饰符总结

final修饰符:类变量:1.在声明该变量时指定初始值。2.在静态初始块中指定初始值。只能在这两个地方其中之一指定。实例变量:1.声明该实例变量时指定初始值。2.在非静态初始化块中指定初始值。3.在构造函数中指定初始值。必须在这三个地方指定初始值。 只能在初始化块或静态初始化块赋值,不能再初始化块或静态初始化块中声明,因为在初始化块或静态初始化块中声明相当于局部变量。 都不

2017-10-15 16:00:23 206

原创 Java_单例

public class Danlei { public static void main(String[] args) { Dan s1=Dan.getDan(); Dan s2=Dan.getDan(); System.out.println(s1==s2);//true实际上指向的是同一个对象,避免大量相同对象占用内存空间。 }}class Dan{ privat

2017-10-15 11:35:00 206

原创 Java_==与equals

1.     ====严格要求两个变量指向同一对象。==不能比较没有父子关系的对象。public class EqualTest { public static void main(String[] args) { int it=65; float f1=65.0f; System.out.println(it==f1);//true char ch='A'; S

2017-10-15 10:18:06 209

原创 引用变量的强制类型转换_instanceof

引用变量只能调用它编译时的类型方法,而不能调用它运行时类型的方法。强制类型转换:1.基本类型之间的转换只能在数值类型之间进行。数值类型与布尔类型不能转换。2.引用类型之间的转换只能在具有继承关系的两个类型之间进行,如果试图把一个父类实例转换为一个子类类型,则这个对象必须实际上是子类类型(即编译时时父类类型,而运行时为子类类型),否则会ClassCastException。/

2017-10-13 22:02:11 654

原创 java_多态

public class duotai extends BaseClass{ public String book="钢铁是怎样炼成的"; public void test(){ System.out.println("子类覆盖父类的方法"); } public void sub() { System.out.println("子类的普通方法"); } public stati

2017-10-13 21:37:16 210

原创 java_this/super构造器

public class Base extends fu{ public String color; public Base(String color,String name, double size) { super(name,size);//调用父类的构造器 this.color=color; } public static void main(String[] args) {

2017-10-13 20:35:37 243

原创 java_this使用

public class thisShiyong { public void jump() { System.out.println("jump方法"); } public void run() { System.out.println("run方法"); //this.jump();// thisShiyong a=new thisShiyong(); a.jump();

2017-10-13 15:23:57 243

原创 java方法的参数传递机制

public class swap {public static void Swap(int a,int b) {int tmp=a;a=b;b=tmp;System.out.println("Swap方法里,a的值是 "+a+"; b的值是"+b);}public static void main(String[] args) {int a=6,b=9;Swa

2017-10-13 08:32:50 185

原创 java_学习小问题

在一个java文件中写多个类。不过只能有一个public所修饰的类,所以将A和B类前的public修饰符去掉即可,最终代码如下:public class Test{        public static void main(String args[]){               new B();       }}class A {        public A

2017-10-12 19:15:00 217

转载 java.lang.ClassCastException(java强制类型转换异常)

ClassCastException,从字面上看,是类型转换错误,通常是进行强制类型转换时候出的错误。下面对产生ClassCastException异常的原因进行分析,然后给出这种异常的解决方法。这种异常是如何产生的呢?举一个比较形象的例子。Animal表示动物,Dog表示狗,是动物的子类,Cat表示猫,是动物的子类。看下面的代码:Animal a1 = new Dog()

2017-10-12 14:38:14 6770

原创 33. Search in Rotated Sorted Array

Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).You are given a target value to search. If foun

2017-10-11 20:44:40 185

原创 二分查找_边界值的判定

278. First Bad VersionSuppose you have n versions [1, 2, ..., n] and you want to find out the first bad one, which causes all the following ones to be bad.给定一组数[1,2,...,n]如果一个数为bad则它后续的所有数都为ba

2017-10-11 17:35:06 1401

转载 441. Arranging Coins

问题:You have a total of n coins that you want to form in a staircase shape, where every k-th row must have exactly k coins.Given n, find the total number of full staircase rows that can b

2017-10-08 15:34:15 167

原创 349. Intersection of Two Arrays

1.采用两个hashset 时间复杂度为O(n)class Solution { public int[] intersection(int[] nums1, int[] nums2) { //use two hashset Set set=new HashSet<>(); Set interset=new HashSet<>(

2017-10-08 09:39:32 176

原创 Java 中 静态方法与非静态方法的区别

转载静态方法和实例方法的区别主要体现在两个方面:在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制。下面几个例子展示了这一区别。

2017-10-07 15:30:04 3071

转载 二分查找算法

1.必须针对有序数组2.查找时间为logn3.如何取中间值以及边界判断三种基本版本:1.1 二分查找原始版--查找某个数的下标(任意一个)在有序数组中查找某个数,找到返回数的下标,存在多个返回任意一个即可,没有返回-1。所有程序采用左右均为闭区间,即函数中n为最后一个元素下标,而不是元素个数。典型代码如下:[java] view

2017-10-07 15:07:27 461

原创 167. Two Sum II - Input array is sorted

Given an array of integers that is already sorted in ascending order, find two numbers such that they add up to a specific target number.The function twoSum should return indices of the two number

2017-10-07 11:05:18 218

原创 50. Pow(x, n)

采用递归的方法,将Pow(x,n),转化为Pow(x,n/2)*Pow(x,n/2)。将时间从O(n)变成O(logn)关键是写出边界条件。并注意定义double类型的tmp=pow(x,n/2).对n的正负以及奇偶做判断。class Solution { public double myPow(double x, int n) { if (n==0) return

2017-10-07 10:30:22 230

转载 Java中的Double类型的精度计算

Java中的Double类型计算一、问题的提出:如果我们编译运行下面这个程序会看到什么?public class Test{    public static void main(String args[]){        System.out.println(0.05+0.01);        System.out.println(1.0-0.42

2017-10-07 09:49:24 659

原创 367. Valid Perfect Square

Given a positive integer num, write a function which returns True if num is a perfect square else False.Note: Do not use any built-in library function such as sqrt.Example 1:Input: 16Return

2017-10-06 17:46:56 180

原创 69 Sqrt(x)_二分查找与牛顿方法

1.采用二分搜索方法注意如何取中点值,并且注意mid要写在while中每次都要更新:mid=lo+(hi-lo)/2,最小值加上最大减最小除2;注意如何返回非正常值,return hiclass Solution { public int mySqrt(int x) { int lo=1; int hi=x; int mid;

2017-10-06 17:03:46 281

原创 674. Longest Continuous Increasing Subsequence

求最长的连续增长子序列。这是一道简单题,可以用 cnt来记录当前的最长增长子序列,用res来记录最后结果最大的最长增长子序列。class Solution {    public int findLengthOfLCIS(int[] nums) {        int res=0,cnt=0;        for (int i=0; i            if(i=

2017-10-02 11:50:44 156

转载 70. Climbing Stairs

第一反应,递归求解,貌似很简单。但是不幸,超时[java] view plain copypublic int climbStairs1(int n) {          if (n == 1 || n == 2) {              return n;          }          return cli

2017-10-01 17:44:51 183

原创 155. Min Stack

class MinStack {    /** initialize your data structure here. */    private Stack stack=new Stack    private Stack minStack=new Stack    public MinStack() {            }        publ

2017-10-01 16:36:53 202

原创 225. Implement Stack using Queues

使用队列来实现栈class MyStack {    Queue queue;    /** Initialize your data structure here. */    public MyStack() {        this.queue=new LinkedList();    }        /** Push element x onto sta

2017-10-01 16:04:16 230

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除