- 博客(89)
- 收藏
- 关注
转载 动态规划
求数组中最长递增子序列写一个时间复杂度尽可能低的程序,求一个一维数组(N个元素)中的最长递增子序列的长度。例如:在序列1,-1,2,-3,4,-5,6,-7中,其最长的递增子序列为1,2,4,6。 分析与解法 根据题目的要求,求一维数组中的最长递增子序列,也就是找一个标号的序列b[0],b[1],…,b[m
2015-10-04 11:11:37
348
原创 递归求阶乘
public class Main6 { public static int cal(int n,int k){ if(n==k){ return 1; }else if(k==0){ return 1; }else { return cal(n-1,k-1)+cal(n-1,k); } } public static void main(String[]
2015-10-04 10:21:34
309
原创 大话数据结构--排序
大话数据结构中排序的顺序是--冒泡排序--选择排序--插入排序--希尔排序--堆排序--归并排序--快速排序在希尔排序之前,所有的排序算法的复杂度都是O(N2),希尔排序打开了复杂度为O(nlongn)的大门。
2015-10-03 22:36:44
399
原创 冒泡排序
public static void maoSort(int[] ints){ int temp; for(int i=ints.length-1;i>0;i--){ for(int j=0;j<i;j++){ if(ints[j+1]<ints[j]){ temp=ints[j+1]; ints[j+1]=ints[j]; ints[j]=te
2015-09-28 17:47:19
245
原创 字符串压缩
import java.util.Scanner;public class Main{ public static void main(String[] strs){ Scanner sca = new Scanner(System.in); String str=sca.nextLine(); int pointer=0; if(str==null||str.length()
2015-09-28 16:25:48
269
原创 数字围成一个圈,数到3退出
import java.util.*;public class Main7 { public static void main(String[] strs){ System.out.println(leftPerson(3)); } public static int leftPerson(int n) { if(n==1){ return 1; } if(n
2015-09-27 09:04:52
618
原创 .的转义
String sss = "12.3.12"; String[] chars = sss.split("\\."); for(String aa:chars){ System.out.println(aa); } System.out.println("..");注意split()中的.应该是转义,并且是两个\\。但是要是直接输出的话就可以直接写,如最后一行。
2015-09-25 10:21:04
876
原创 数据结构-树转换为二叉树、森林转换为二叉树
1、加线:在所有的兄弟节点之间加一条连线;2、去线:对树中的每一个结点,只保留它与第一个孩子结点的连线,删除它与其他孩子结点之间的连线。3、层次调整:以树的根结点为轴心,旋转,注意,第一个孩子是二叉树结点的左孩子,兄弟结点为右孩子。深林:1、把每个树转换为二叉树2、第一个二叉树不动,从第二课二叉树开始,依次把一颗二叉树的根结点作为前一刻二叉树的根结点的右孩子。
2015-09-25 09:39:49
795
原创 去哪儿网有点问题2
import java.util.Collections;import java.util.LinkedList;import java.util.Scanner;public class Main { public static boolean isContain(int[] ints,int i){ for(int j =0;j<ints.length;j++){ if(
2015-09-21 16:05:26
259
原创 去哪儿网试题有点问题1
import java.util.Scanner;public class GetNewVersion { public static boolean isMoreStable(String str1,String str2){ String[] str1s = str1.split("."); String[] str2s = str2.split("."); int x
2015-09-21 15:59:41
337
原创 c++地址问题
int main(int argc,char**argv){ int a[4]={1,2,3,4}; int*ptr=(int*)(&a+1); printf(“%d”,*(ptr-1));}指针的实质为:地址+步长。指针的类型决定了步长。定义了数组a[4],其中a,&a,&a[0]都是数组的起始地址。但是步长有区别,也就是指向的类型不同a等同于a
2015-09-20 17:19:12
273
原创 华为求字符串最后单词长度
import java.util.Scanner;public class Main { static int getCount(String str){ if(str==null||str.length()==0){ return 0; } String strTem = str.trim(); String[] strings = strTem.split(" "
2015-09-20 10:49:22
248
原创 递归分解质因数
public class Java { static boolean isSu(int a){ for(int i =2;i < Math.sqrt(a);i++){ if (a%i==0){ return false; } } return true; } static void printer(int a ){ if((isSu(a)==true)&&
2015-09-20 09:05:18
1917
原创 c++ tip
int anan[10]={1}; cout<<sizeof(anan)<<endl; cout401 int a[]={1,3,4,5,6,7}; int b[]={2,4,5,6,8,9}; cout<<sizeof(a[0])<<endl; cout<<(sizeof(a))<<endl; cout4246char a[10]
2015-09-16 21:16:56
284
原创 计算某个数的二进制中有几个1
int func ( x ){ int countx = 0; while ( x ) { countx ++; x = x&(x-1); } return countx;}
2015-09-16 19:00:05
273
原创 快速排序
public class KuaiSu { static int count =0; public static void quickSort(int[] arr){ qsort(arr, 0, arr.length-1); } private static void qsort(int[] arr, int low, int high){ if (low < high
2015-09-12 11:25:41
238
原创 数据结构tip
由前序遍历和中序遍历能够唯一确定一个二叉树;由中序遍历和后序遍历能够唯一确定一个二叉树;由后序遍历和前序遍历不能唯一确定一个二叉树;
2015-09-11 17:35:24
269
原创 已知前序中序确定后序java
import java.util.ArrayList;import java.util.Arrays;public class Solution { public static void main(String[]strs){ String preOrder ="12453"; String inOrder ="42513"; Node root = houXu(preOr
2015-09-11 17:33:38
486
原创 论java中的contains
Arrays中常用的几个静态方法:1、二分查找,是静态方法,且不需排序,返回下标。static intbinarySearch(byte[] a, byte key)Searches the specified array of bytes for the specified value using the binary search algorithm.
2015-09-11 17:03:43
954
原创 创建层次二叉树
1、层经尝试着用递归实现二叉树的层次创建,但是失败了。如下语言所示,分析可能还是return root上面的两句中,执行完第一句之后,i发生了变化,但还不是太明白:public class ErChaShu { public TreeNode root;// public int counter; public ErChaShu(){ root = null; } pub
2015-09-02 23:36:08
626
原创 论char数组在c++和java中的不同
1、在java中char[] chars = "nimei";是不能被编译通过的。但在c++中是没问题的。 char[] chars = {'1','2','3'}; String strrrr = Arrays.toString(chars); System.out.println(chars); System.out.println(strrrr);输出:123
2015-09-01 18:40:14
453
原创 小心split()函数
1、一定要小心String的split()函数, String strnan = " nan ma"; String[] strnans = strnan.split(" "); System.out.println(strnans[0]);输出是没有;因为原字符串开始是有空格的,这个函数处理这种情况的时候就不是去掉了空格,而是将空格转化成了“”,即空。但是strnans的长度是3.
2015-09-01 18:14:21
232
原创 数组和ArrayList
1、在java中,数组一旦建立,长度就固定了。因此数组建立的时候要么指定大小:int[] ints= new int[3];要么直接赋值int[] intss = {2,3,5};二维数组定义时,可以只指定一维的大小:那就是行的int[][] intsss = new int[2][];。java中的二维数组定义时赋值,必须得用{}括起来,int[][3] intssss= {1,3,2,
2015-09-01 16:55:30
223
原创 java null
主方法中: String str = ""; System.out.println(str == ""); System.out.println(str == null); System.out.println(str.length());输出结果是:truefalse0主方法中: Stri
2015-09-01 13:20:28
205
原创 单例方式的加载过程
public class StaticCTest { private static StaticCTest st = new StaticCTest(); public static int count1; public static int count2 = 0; public StaticCTest(){ count1++; count2++; } public stat
2015-08-31 20:23:07
267
原创 java 访问的权限
1、JAVA访问修饰符:----------[public | default | protected | private ]public: 完全开发protected: 同包及子类访问default(无): 同包访问private: 只能本类访问当构造方法为private级别时,意味着只能在当前类访问它,不能被继承,不能被其他程序用new创
2015-08-31 08:54:35
222
原创 java tips 子字符串
String string1 = "nanganglei"; String str = string1.substring(0,1);注意:1、输出的是“n”,就意味着子字符串是包含起始位的字符的。2、注意是substring,都是小写。不需要import其他包。Math的方法不需要import包。
2015-08-28 20:19:12
212
原创 java的private继承问题
class C{ private void print(){ System.out.println("c"); }}class D extends C { public void shuChu(){ print(); }}以上程序编译不能通过。父类中的private方法是不能被继承。
2015-08-28 12:11:50
474
转载 子类重写父类的方法应注意的问题
若想实现一个合格重写方法,而不是重载,那么必须同时满足下面的要求!重写规则之一:重写方法不能比被重写方法限制有更严格的访问级别。(但是可以更广泛,比如父类方法是包访问权限,子类的重写方法是public访问权限。) 比如:Object类有个toString()方法,开始重写这个方法的时候我们总容易忘记public修饰符,编译器当然不会放过任何教训我们 的机会。出错的原因就是:没有加任何访
2015-08-28 11:35:31
682
1
原创 final继承问题
1、final方法是可以继承的,但是在子类中不能进行重写:public class Test { public static void main (String[] args) { Horse horse = new Horse(); horse.shuChu(); }}class Animal { final void eat(){ System.ou
2015-08-28 11:22:14
259
原创 java存储数据
在JAVA中,有六个不同的地方可以存储数据: 1. 寄存器(register)。 这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。 ------最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.2. 堆栈(stack)。位
2015-08-28 09:04:46
348
原创 异常的实例
import java.io.*;public class TestThreadClas { public static void main(String argv[]){ TestThreadClas m = new TestThreadClas(); try { System.out.println(m.amethod()); } catch (Exception e)
2015-08-27 22:13:08
235
原创 java集合框架
collection中定义的方法:上述类图中,实线边框的是实现类,比如ArrayList,LinkedList,HashMap等,折线边框的是抽象类,比如AbstractCollection,AbstractList,AbstractMap等,而点线边框的是接口,比如Collection,Iterator,List等。上述的所有集合类,都实现了Iterator(迭代
2015-08-27 20:16:22
250
原创 system.out.println触发联想
1、system.out.println();可以输出基本类型和类类型,可以直接输出string类型对象。2、其实system.out.println();输出的是类的toString方法,所以非string对象也可以被system.out.println输出,但是很有可能是乱码,如: class Node { int number; Node nextNode; Node(int
2015-08-27 17:44:34
329
原创 集合框架的线程安全类
线程安全类在集合框架中,有些类是线程安全的,这些都是JDK1.1中的出现的。在JDK1.2之后,就出现许许多多非线程安全的类。下面是这些线程安全的同步的类:Vector:就比ArrayList多了个同步化机制(线程安全)。Statck:堆栈类,先进后出。Hashtable:就比HashMap多了个线程安全。Enumeration:枚举,相当于迭代器。
2015-08-27 13:53:25
1106
转载 入栈出栈序列问题
题目如下:用n个1和m个0组成字符串,要求任意的前k个字符中,1的个数不能少于0的个数。问满足要求的字符串数目。 解法:该题的解法也是看了一些牛人的提示才知道的,也才知道catalan数这种东东,catalan数的一个典型应用实例跟这个题很相似,其分析过程也很有启发作用,这个应用实例是这样的:一个栈(无穷大)的进栈序列为1,2,3,..n,有多少个不同的出栈序列?
2015-08-27 12:00:17
6588
1
原创 java 中记录时间
public class QuN{ public static void main(String[] strs){ long startTime = System.currentTimeMillis(); int i = 0; while(i<1000000){ i++; } long endTime = System.currentTimeMillis(); Sy
2015-08-27 08:35:22
450
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人