(一).2014.9.11哈尔滨站
1.有一组随机排列的字母数组,请编写一个时间复杂度为O(n)的算法,使得这些字母按照字母从小到大顺序排列好。说明:字母区分大小写,相同的字母,排序后小写排在大写前。例如:R B B b W W B R B W ,排序后: b B B B B R R w W W
1)描述思路
26个英语字母大小写共52个字母,默认存在一个长度为52的数组count中,顺序为a A b,B c C....
遍历给出的数组ch,如果当前字符是小写,找到对应偶数的位置,将其个数+1,如果当前字符是大写,找到对应奇数的位置,将其个数+1,排序算法为O(n)
下面程序为输出。
2)请用你熟悉的编程语言编码实现
public class Netscape {
public static void main(String ... args){
char[] ch = {'R','B','B','b','W','W','B','R','B','w'};
int[] count = new int[52];
char lowerStart ='a',upperStart ='A';
for(int i=0;i
2.
public class MeiTuan {
public static void main(String ... args){
MeiTuan m = new MeiTuan();
System.out.print(m.getResult(2, 3));
}
public int getResult(int x,int n){
int result = 0,temp=1;
for(int i=0;i<=n;i++){
result+=temp;
temp*=x;
}
return result;
}
}
3.
public class MeiTuan {
public static void main(String ... args){
MeiTuan m = new MeiTuan();
int[][] x={{1,2,3},{4,5,6},{7,8,9}};
int[][] x1={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
m.rotate(x1);
}
public void rotate(int[][] x){
if(x.length!=x[0].length){
System.out.println("not square");return;
}
int[][] ret = new int[2*x.length-1][x.length];
for(int i= 0;i
=i;j--){
ret[x.length-j-1+i][i]=x[i][j];
}
for(int k=x.length,j=i+1;k
![](https://img-blog.csdn.net/20140918155601157?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvanNqeHkyMDA5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
4.![](https://img-blog.csdn.net/20140922081509309?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvanNqeHkyMDA5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)