写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这棵二叉树中相差最大的两个节点间的差值绝对值。
package alibaba.a0727;
public class Demo01 {
int maxValue(BinNode root){
if(root == null)
return 0;//其实应该返回最小负整数,这里假设0为最小值
int left = maxValue(root.getLeft());//返回左节点最大值
int right = maxValue(root.getRight());//返回右节点最大值
int max = left>right?left:right;
//左右节点的最大值与根值进行比较
return max>root.getValue()?max:root.getValue();
}
int minValue(BinNode root){
if(root == null)
return 32767;
int left = minValue(root.getLeft());
int right = minValue(root.getRight());
int min = left<right?left:right;
return min<root.getValue()?min:root.getValue();
}
//先递归找到最大值,在递归找到最小值
int diff(BinNode root){
return maxValue(root)-minValue(root);
}
}
class BinNode{
BinNode left,right;
int value;
public BinNode getLeft() {
return left;
}
public void setLeft(BinNode left) {
this.left = left;
}
public BinNode getRight() {
return right;
}
public void setRight(BinNode right) {
this.right = right;
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
给定一个 query 和一个 text,均由小写字母组成。要求在 text 中找出以同样的顺序连 续出现在 query 中的最长连续字母序列的长度。例如, query 为“acbac”,text 为“acaccbabb”,那么text 中的“cba”为最长的连续出现在 query 中的字母序列,因此, 返回结果应该为其长度 3。请注意程序效率。
package alibaba.a0727;
public class Demo02 {
public static int maxLengthInQuery(char[] query,char[] text){
int[] length = new int[text.length];
//第一趟只有第一个字符,第二趟前两个字符
for(int i = 0;i<text.length;i++)
{
int size = 0;
int temp = i;//暂存i
//从最后一个字符开始比较
for(int j = query.length-1;j >= 0;){
if(text[i] == query[j])
{
size++;
i--;
j--;
if(i<0){
break;//说明i所在text中字符比较完了
}
}
else
{
if( j == query.length - 1){
while(query[j] != text[i])
j--;
}else{
break;
}
}
}
length[temp] = size;
i = temp;
}
return Max(length);
}
public static int Max(int[] arr){
int max = arr[0];
for(int i = 1;i<arr.length;i++){
if(arr[i] > max)
max = arr[i];
}
return max;
}
public static void main(String[] args) {
char[] query = {‘a‘,‘c‘,‘b‘,‘a‘,‘c‘};
char[] text = {‘a‘,‘c‘,‘a‘,‘c‘,‘c‘,‘b‘,‘a‘,‘b‘,‘b‘};
System.out.println(maxLengthInQuery(query, text));
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/scgaliguodong123_/article/details/47110881