网摘一些经典面试题

1.数据库1中存放着a类数据,数据库2中存放着以天为单位划分的表30张(比如 table_20110909,table_20110910,table_20110911),总共是一个月的数据。表1中的a类数据中有一个字段 userid来唯一判别用户身份,表2中的30张表(每张表结构相同)也有一个字段userid来唯一识别用户身份。如何判定a类数据库的多少用户在数据 库2中出现过?

解:select count(*) from 数据库1.a类数据 
where exists (select 1 from 数据库2.table_20110909 where userid = 数据库1.a类数据.userid)
or exists (select 1 from 数据库2.table_20110910 where userid = 数据库1.a类数据.userid)
or exists (select 1 from 数据库2.table_20110911 where userid = 数据库1.a类数据.userid)

2.一个单词单词字母交换,可得另一个单词,如army->mary,成为兄弟单词。提供一个单词,在字典中找到它的兄弟。描述数据结构和查询过程。

参考:这里

3.什么是线程安全?

参考:这里

4.数组al[0,mid-1] 和 al[mid,num-1],都分别有序。将其merge成有序数组al[0,num-1],要求空间复杂度O(1)

原文地址:https://www.cnblogs.com/sxmcACM/p/4438140.html