1. 在从1到n这n个连续自然数中,任意取出n-1个数放在一个含有n-1个项的数组中(任意顺序排列),请你用java或C编写一个函数,用以找到所缺的那个数。要求该算法满足时间复杂度为o(n),空间复杂度为常数。
2. 对于上题的算法,能否扩充到支持:在从1到n这n个连续自然数中,任意取出n-2个数放在一个含有n-2个项的数组中(任意顺序排列)?如果不能够,请找出一个新算法:满足时间复杂度为o(n),空间复杂度为常数。
3. 请你用java或C编写一个函数,用以寻找一个单向链表的中间结点,要求该算法尽量少的遍历列表。
现有两个表:
1. 用户信息表(UserInfo)包括UID(用户ID,主键)、UNAME(姓名)、USALARY(工资)、UDEPTNO(所在部门编号)以及UPOS(级别)
2. 印章表(SealInfo)包括SEALID(印章编号,主键)、SEALNAME以及SEALDATA
请设计一个用户和印章关系表,做到:
a. 一个用户可以拥有多个印章;
b. 一个印章可以被多个用户同时拥有;
c. 一个印章可以被一个或多个部门同时拥有.
然后完成以下操作:
1. 删除印章(SEALID=A)所需的SQL语句及步骤。
2. 请用SQL语句查询印章(SEALID=C)可以被那些用户或部门(编号)使用。
3. 请用SQL语句查询用户(UID=C)可以使用的所有印章。
2. 对于上题的算法,能否扩充到支持:在从1到n这n个连续自然数中,任意取出n-2个数放在一个含有n-2个项的数组中(任意顺序排列)?如果不能够,请找出一个新算法:满足时间复杂度为o(n),空间复杂度为常数。
3. 请你用java或C编写一个函数,用以寻找一个单向链表的中间结点,要求该算法尽量少的遍历列表。
现有两个表:
1. 用户信息表(UserInfo)包括UID(用户ID,主键)、UNAME(姓名)、USALARY(工资)、UDEPTNO(所在部门编号)以及UPOS(级别)
2. 印章表(SealInfo)包括SEALID(印章编号,主键)、SEALNAME以及SEALDATA
请设计一个用户和印章关系表,做到:
a. 一个用户可以拥有多个印章;
b. 一个印章可以被多个用户同时拥有;
c. 一个印章可以被一个或多个部门同时拥有.
然后完成以下操作:
1. 删除印章(SEALID=A)所需的SQL语句及步骤。
2. 请用SQL语句查询印章(SEALID=C)可以被那些用户或部门(编号)使用。
3. 请用SQL语句查询用户(UID=C)可以使用的所有印章。
解决方案 »
- 基于java的图片里面的字符识别?
- 引用苹果界面的jar包问题
- 十六进制整型赋值出错
- 如何使一个Jlabel中内容居中并且上端带一条彩色的线?
- JTable 鼠标移动事件问题
- 使用Java Media Framework API写的播放器发布问题
- 初学JAVA,该往哪个方向走??
- JAVA开发者的高手的QQ群,号码是4338365
- 谁看过中国电力出版社的〈〈JAVA入门经典〉〉,一本砖头!
- 那位大虾来就救命呀~!
- eclipse经常出现这样的问题:报错说某一个类A无法解析,事实上类A没有什么错误,只是一个简单的pojo, 当随便修改一下A时,错误就解决了,请问这是怎么回事,请教!
- 这个while(true)怎么退出循环的?(二分查找法里的)
for(int i=0;i<10;i++){
arr[i]=10*math.random();
}
int i=(1+a.length+1)*(a.length+1)/2;
int k=0;
for(int n=1;n <=a.length;n++)k+=a[n];
return i-k;
}第2题还在想ing...
---------------------------------------/**
* project_name: Test
* package_name: netsource
* package_declaration: package netsource;
* filename: FoundNumber.java
* author: yuhaiming
* date: 2007-11-13
*/
package netsource;
import java.math.*;
/**
* 1. 在从1到n这n个连续自然数中,任意取出n-1个数放在一个含有n-1个项的数组中(任意顺序排列),请你用java或C编写一个函数,用以找到所缺的那个数。要求该算法满足时间复杂度为o(n),空间复杂度为常数。
2. 对于上题的算法,能否扩充到支持:在从1到n这n个连续自然数中,任意取出n-2个数放在一个含有n-2个项的数组中(任意顺序排列)?如果不能够,请找出一个新算法:满足时间复杂度为o(n),空间复杂度为常数。
3. 请你用java或C编写一个函数,用以寻找一个单向链表的中间结点,要求该算法尽量少的遍历列表。
现有两个表:
1. 用户信息表(UserInfo)包括UID(用户ID,主键)、UNAME(姓名)、USALARY(工资)、UDEPTNO(所在部门编号)以及UPOS(级别)
2. 印章表(SealInfo)包括SEALID(印章编号,主键)、SEALNAME以及SEALDATA
请设计一个用户和印章关系表,做到:
a. 一个用户可以拥有多个印章;
b. 一个印章可以被多个用户同时拥有;
c. 一个印章可以被一个或多个部门同时拥有.
然后完成以下操作:
1. 删除印章(SEALID=A)所需的SQL语句及步骤。
2. 请用SQL语句查询印章(SEALID=C)可以被那些用户或部门(编号)使用。
3. 请用SQL语句查询用户(UID=C)可以使用的所有印章。
* @author yuhaiming
*
*/
public class FoundNumber {
/**
* 主处理函数
*/
public static void disposal(){
int[] number = new int[5];
initnumber(number);
displayNumber(number);
int resultNum = foundNumber(number);
System.out.println("查找出来的数为:"+resultNum);
}
public static int foundNumber(int[] number){
for(int i=1;i<(number.length+1);i++){
if(distinguish(number,i))return i;
}
return 0;
}
/**
* 打印数组
* @param number
*/
public static void displayNumber(int[] number){
System.out.println("数组为:");
for(int i=0;i<number.length;i++){
System.out.print(number[i]+" ");
}
System.out.println();
}
/**
* 初始化数组
* @param number
*/
public static void initnumber(int[] number){
int curnumber;
//依次对数组元素进行赋值
for(int i=0;i<number.length;i++){
curnumber = (int)(Math.random()*(number.length+1))+1;
while(!distinguish(number,curnumber)){
//不能赋值,则继续生成随机数,直到生成的数能够赋值为止
curnumber = (int)(Math.random()*(number.length+1))+1;
}
number[i] = curnumber;
}
}
public static boolean distinguish(int[] number,int curnumber){
for(int i=0;i<number.length;i++){
if(curnumber==number[i])return false;
}
return true;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
disposal();
}}
int i=(1+a.length+1)*(a.length+1)/2;
int k=0;
for(int n=0;n<a.length;n++)k+=a[n];
return i-k;
}
int i=(1+a.length+1)*(a.length+1)/2;
int k=0;
for(int n=0;n<a.length;n++)k+=a[n];
int s=i-k;
i=(1+s/2)*(s/2)/2;
k=0;
for(int n=0;n<a.length;n++){
if(a[n]<=s/2)k+=a[n];
}
int[] t=new int[2];
t[0]=i-k;
t[1]=s-t[0];
return t;
}第三题我就不管了(其实是不会..)
1.delete from SealForUser where SEALID=='A' ;
delete from SealInfo where SEALID=='A' ;
2.select u.UNAME,u.UDEPTNO from UserInfo u ,SealForUser s where s.SEALID=='C' ;
3.select * from SealForUser s where s.UID='C';
没测试不知道对不对!
在印章表中 设立一个 所有人(OWNERS)字段
select UID,UDEPTNO from UserInfo where ALLSEALS like '%C%'select SEALID from SealInfo where OWNERS like '%C%'