有一个quary和text要求找出两者匹配最长的字符串的长度:


/*** 利用KMP解决求最长匹配长度** @author 曾修建* @version 创建时间:2014-8-29 下午07:43:36*/?
public class ALTest {
/** * KMP匹配字符串 *  * @param s       主串 * @param t            模式串 * @return 若匹配成功,返回能匹配到的最长长度*/
public static int KMP_Index(char[] s, char[] t) {
int[] next = next(t);
int i = 0;
int j = 0;
int maxLength = 0;   //记录能匹配最长的长度
while (i <= s.length - 1 && j <= t.length - 1) {
if (j == -1 || s[i] == t[j]) {
i++;
j++;
maxLength  =  i;
} else {
j = next[j];
}
}
return maxLength;
}
public static int[] next(char[] t) {
int[] next = new int[t.length];
next[0] = -1;
int i = 0;
int j = -1;
while (i < t.length - 1) {
if (j == -1 || t[i] == t[j]) {
i++;
j++;
if (t[i] != t[j]) {
next[i] = j;
} else {
next[i] = next[j];
}
} else {
j = next[j];
}
}
return next;
}  public static void main(String[] args) {
char []query = {'c','b','a'}, text={'a','c','a','c','c','b','a','b','b'};
System.out.println("能匹配到最长的长度是:   "+KMP_Index(query,text));
}
}

1/写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这棵二叉树中相差最大的两个节点间的差值绝对值。请注意程序效率。

#include <iostream>

using namespace std;

struct Node

{

Node *left;

Node *right;

};

struct Detail

{

int Distance;

int Depth;

};

Detail GetMaxDistance(Node* root)

{

if (!root)

{

Detail empty = { 0, -1 };

return empty;

}

Detail lhs = GetMaxDistance(root->left);

Detail rhs = GetMaxDistance(root->right);

Detail Detail;

Detail.Depth = max(lhs.Depth + 1, rhs.Depth + 1);

Detail.Distance = max(max(lhs.Distance, rhs.Distance), lhs.Depth + rhs.Depth + 2);

return Detail;

}

void Link(Node* nodes,int parent,int left,int right)

{

if(left != -1)

nodes[parent].left = &nodes[left];

if(right != -1)

nodes[parent].right = &nodes[right];

}

void main()

{

Node test[9] = { 0 };

Link(test, 0, 1, 2);

Link(test, 1, 3, 4);

Link(test, 3, 5, 6);

Link(test, 5, 7, -1);

Link(test, 6, -1, 8);

cout <<"test:  "<< GetMaxDistance(&test[0]).Distance << endl;

}

2、Java中sleep()、wait()区别

功能差不多,都用来进行线程控制,他们最大本质的区别是:

(1)sleep()不释放同步锁,wait()释放同步锁,使得其他线程可以使用同步控制块或者方法

(2)sleep(milliseconds)可以用时间指定来使他自动醒过来,如果时间不到你只能调用interreput()来强行打断;

wait()可以用notify()直接唤起.

(3)这两个方法来自不同的类分别是Thread和Object

(4)wait只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用

(5)sleep必须捕获异常,而wait不需要捕获异常

2014年阿里巴巴校园招聘算法大题相关推荐

  1. 2014年阿里巴巴校园招聘两道算法题

    昨天阿里巴巴校园招聘在线测试,总的来说算法题比较简单,至于前面的选择题不是本人的强项,个人感觉比较难.下面我们说说两道算法题: 第一题大意是有一个quary和text要求找出两者匹配最长的字符串的长度 ...

  2. 2014年阿里巴巴校园招聘-软件研发工程师笔试题

    1.假设把整数关键码K散列到N个槽列表,以下哪些散列函数是好的散列函数 A.h(K)=K/N; B.h(K)=1; C.h(K)=K mod N; D.h(K)=(K+rand(N)) mod N, ...

  3. 2014阿里巴巴校园招聘的一些感悟

    2014阿里巴巴校园招聘 本来只是抱着试一试的心态去参加2014年阿里巴巴校园招聘(本人大三,2015年毕业),所报岗位:前端工程师. 首先阿里2014校园招聘前端是在线笔试的,前5道题目谈各种人生理 ...

  4. 搜狗2016校园招聘之编程题解析-大数据开发

    搜狗2016校园招聘之编程题解析-大数据开发 解题思路: 使用JDK中的Point2D类,该类定义了坐标系空间中的一个点 Point2D是一个抽象类,但是在该类内部定义了静态的Double类,并且Do ...

  5. 百度2014研发类校园招聘笔试题解答

    http://blog.csdn.net/lanxuezaipiao/article/details/42915285 先总体说下题型,共有3道简答题,3道算法编程题和1道系统设计题,题目有难有易,限 ...

  6. Interview:算法岗位面试—2019秋招校园招聘—算法工程师【机器学习、深度学习(偏图像)】秋招感悟:初期阶段的傲娇→中期阶段的紧张→后期阶段的蜕变

    ML岗位面试:2019秋招&校园招聘-算法工程师[机器学习.深度学习(偏图像)]秋招感悟:初期阶段的傲娇→中期阶段的紧张→后期阶段的蜕变 Interview:算法岗位面试-2019秋招& ...

  7. 2014届华为校园招聘机试题

    华为2014校园招聘的机试题目和2013年的完全一样. 一.题目描述(60分): 通过键盘输入一串小写字母(a~z)组成的字符串.请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的 ...

  8. 笔试 - 2014创新工场涂鸦移动校园招聘测试题 及 答案

    2014创新工场涂鸦移动校园招聘测试题 及 答案 本文地址: http://blog.csdn.net/caroline_wendy/article/details/28664807 by Spike ...

  9. 2014年360校园招聘笔试题,干货分享

    2014年360校园招聘笔试题,希望对将要找工作的同学有帮助,加油,绝对干货分享!!! 具体内容见附件! 转载请注明出处:http://blog.csdn.net/happy_cheng

最新文章

  1. ASP:Literal控件用法
  2. 【日常分享1】三步,有效去除网页广告,完美过滤视频广告
  3. Metal之Shading Language Specification(着色语言规范)
  4. 用python打开视频_Python读取视频的两种方法(imageio和cv2)
  5. u-boot_NAND_Flash操作命令及烧录Linux内核和文件系统
  6. C#中的多线程 - 并行编程 z
  7. java notify 指定_java的notify/notifyAll:如何notify指定的线程?
  8. Randomize select algorithm 随机选择算法
  9. 改了上百遍!记上海交通大学第一篇《Science》
  10. pycharm无法安装第三方的包(AttributeError: module 'pip' has no attribute 'main')
  11. springboot static方法与构造方法加载@VALUE
  12. Win10系列:C#应用控件进阶10
  13. Mac电脑「空格键」的妙用,原来有这么多功能
  14. matlab边角网间接平差计算,第21讲间接平差实例.ppt
  15. riskv的linux模拟环境,开启你RISC-V的开发之旅-RISC-V的linux模拟环境搭建整理和总结-EDA365电子论坛通信数码-人工智能-计算机-半导体-手机家电消费电子硬件门户网站...
  16. MySql 集群/主从
  17. 【身份证识别】基于模板匹配算法实现二代身份证号码识别系统含Matlab源码
  18. 执行maven install命令报java不支持diamond语法
  19. 一篇文章搞懂数据仓库:数据应用--OLAP
  20. 百度智能云虚拟主机搭建ThinkPHP5.0项目

热门文章

  1. 2008年托福(toefl)考试答题计分
  2. 中国数字中台行业研究报告(2019艾瑞)笔记
  3. 计算机组成原理实验单周期处理,计算机组成原理实验实验报告-单周期cpu设计...
  4. ECAT运动控制器ARM软件设计
  5. MySQL异常 #SQLException: sql injection violation, part alway true condition not allow
  6. 企业对管理干部的评价目的不同,评价指标有何不同?
  7. 发光二极管pcb封装图画法_半导体器件鼻祖,8个经典二极管电路设计方案资料合辑...
  8. compressing 压缩和解压缩文件和文件夹
  9. hdu 2328 Corporate Identity(KMP)
  10. No connection could be made because the target machine actively refused问题原因解决