05 2014 档案

摘要:思路:递归,由于是二叉查找树,先选择任一结点根结点,假设为结点i,则[1,i-1]范围的结点为结点i的左子树结点,[i+1,n]范围的结点为结点i的右子树结点,则以结点i为根结点的BST个数为左,右子树可构成BST个数的乘积,基于这个思路,可以写出以下递归程序。第一种方法使用动态规划public c... 阅读全文
posted @ 2014-05-26 22:15 曹守鑫 阅读(154) 评论(0) 推荐(0)
摘要:算法:通过递归并限定上下限元素的值的范围可以计算package com.bupt.acm.leetcode;public class ValidBinary { private class TreeNode{ int val; TreeNode left; ... 阅读全文
posted @ 2014-05-26 14:43 曹守鑫 阅读(123) 评论(0) 推荐(0)
摘要:算法:1. 对root的左子树做处理,让左子树的根节点作为,根节点的右子树,并让右子树作为左子树根节点的右子树的子树2. 递归遍历右子树public void flatten(TreeNode root) { if(root==null){ return; ... 阅读全文
posted @ 2014-05-22 10:46 曹守鑫 阅读(122) 评论(0) 推荐(0)
摘要:package com.bupt.acm;import java.util.Scanner;public class HeapSort { private int getLeft(int i){ return 2*(i+1)-1; } private int ... 阅读全文
posted @ 2014-05-20 16:34 曹守鑫 阅读(144) 评论(0) 推荐(0)
摘要:有关字符串相关比较问题,一般处理方法都选择动态规划处理方法。或者是单个循环,或者是多个循环;dp遇到这种两个串的问题,很容易想到DP。但是这道题的递推关系不明显。可以先尝试做一个二维的表int[][] dp,用来记录匹配子序列的个数(以S="rabbbit",T="rabbit"为例): r a b... 阅读全文
posted @ 2014-05-20 15:36 曹守鑫 阅读(293) 评论(0) 推荐(0)
摘要:/**根据完美二叉树或者非完美二叉树都可以,利用左右子树的根节点的next节点信息来连接next*/public void connect(TreeLinkNode root){ if(root==null) return; //利用父节点的next... 阅读全文
posted @ 2014-05-20 11:18 曹守鑫 阅读(143) 评论(0) 推荐(0)
摘要:for i in [n+1 N] M=rand(1,i) if(M<=n) swap the ith and Mth data证明方法:1.初始情况,当尚未选择时,出现在pool中的n个元素的概率相同都是1,证明当第n+1葛元素以n/(n+1)的概率被选中时,前n个元素在pool中的概率为... 阅读全文
posted @ 2014-05-19 22:26 曹守鑫 阅读(189) 评论(0) 推荐(0)
摘要:分析:从最小面一层开始往上计算,设dp[i][j]是以第i层j个元素为起点的最小路径和,动态规划方程如下dp[i][j] = value[i][j] + max{dp[i-1][j], dp[i-1][j+1]}因为每一层之和它下一层的值有关,因此只需要一个一位数组保存下层的值,public int... 阅读全文
posted @ 2014-05-19 11:38 曹守鑫 阅读(226) 评论(0) 推荐(0)
摘要:leetcode:好好A吧少年代码描述了六种二叉树遍历方式分别是:二叉树前序中序后续(递归和非递归方式):注意遍历方式就ok:前序和中序非递归遍历方式一样,只是加入的输出语句不同,算法描述:1.先建立一个栈,存储根节点root,并设立辅助节点tmp2.当栈不为空或者节点不为空时遍历,首先查找当前节点... 阅读全文
posted @ 2014-05-18 22:57 曹守鑫 阅读(537) 评论(0) 推荐(0)
摘要:思路:知道要用DP做,但是一开始思路是错的。后来参考了http://blog.csdn.net/pickless/article/details/12034365才意识到可以在整个区间的每一点切开,然后分别计算左子区间和右子区间的最大值,然后再用O(n)时间找到整个区间的最大值。看来以后碰到与2相关... 阅读全文
posted @ 2014-05-18 16:20 曹守鑫 阅读(193) 评论(0) 推荐(0)
摘要:windows:中C/C++是.dll表示调用的动态链接库,而linux是.so表示动态链接库JNI(Java Native Interface)的书写步骤 ·编写带有native声明的方法的java类 ·使用javac命令编译所编写的java类 ·使用javah ?jni java类名生成扩展名为... 阅读全文
posted @ 2014-05-13 15:15 曹守鑫 阅读(507) 评论(0) 推荐(0)
摘要:1、IKAnalyzerIKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer已经推出 了3个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的IKAnalyzer... 阅读全文
posted @ 2014-05-11 22:19 曹守鑫 阅读(809) 评论(0) 推荐(0)
摘要:指针(*)和引用(&),解引用(*)和取地址(&), 主要观察是在左面, 还是在右面, 如果在左面是前者, 在右面是后者;如果比较多, 则要认真观察, 譬如int*&, 就是指针的引用, 可以避免指针内部元素的复制;还有其他的一些形式, 见下面的例子;/* * test.cpp * * Creat... 阅读全文
posted @ 2014-05-09 15:07 曹守鑫 阅读(356) 评论(0) 推荐(0)
摘要:面试的时候,经常会遇到这样的考题:给你两个类的代码,它们之间是继承的关系,每个类里只有构造器方法和一些变量,构造器里可能还有一段代码对变量值进行了某种运算,另外还有一些将变量值输出到控制台的代码,然后让我们判断输出的结果。这实际上是在考查我们对于继承情况下类的初始化顺序的了解。我们大家都知道,对于静... 阅读全文
posted @ 2014-05-08 17:58 曹守鑫 阅读(242) 评论(0) 推荐(0)
摘要:Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer; at com.bupt.acm.test.TestArrayList... 阅读全文
posted @ 2014-05-02 19:18 曹守鑫 阅读(639) 评论(0) 推荐(0)
摘要://字符串全排列package com.demo.acm;public class AllSortChar { public static void allSort(char[] buf,int start,int end){ if(start==end){ ... 阅读全文
posted @ 2014-05-01 22:46 曹守鑫 阅读(385) 评论(0) 推荐(0)