尴尬了,╮(╯▽╰)╭题目:String[] str = {a,b,c,d,e,f,g}要求:将 a 放在数组str的最后面,得到新数组:{b,c,d,e,f,g,a}╮(╯▽╰)╭ 真是坑爹了,求快点的算法。太久没用、没想   有关算法的东西了,思维感觉都死了。在线坐等。火龙果、宝哥……你们速来支援额

解决方案 »

  1.   

    这种问题,也好意思请火龙果出手么??String[] str = {a,b,c,d,e,f,g}
    String tmp = str[0];
    for (int i=1; i<str.length; i++) {
      str[i-1]=str[i];
    }
    str[str.length-1] = tmp;
      

  2.   

    public static void main(String[] args)
    {
    String[] str = {"a","b","c","d","e","f","g"};

    exchange(str,str.length);
    for(String value : str)
    {
    System.out.print(value+" ");
    }
    System.out.println();
    exchange(str,str.length-1);
    for(String value : str)
    {
    System.out.print(value+" ");
    }
    } private static void exchange(String[] str,int length)
    {
    String temp;
    for(int i=0,j=length-1; i<j ; i++,j--)
    {
    temp = str[i];
    str[i] = str[j];
    str[j] = temp;
    }
    }时间复杂度o(n)
    不知道符合你的要求吗?
      

  3.   


    这么贪心,好吧,这个:String[] str = {a,b,c,d,e,f,g}
    String tmp = str[0];
    System.arraycopy(str, 1, str, 0, str.length-1);
    str[str.length-1] = tmp;
      

  4.   


    String[] src = { "a", "b", "c", "d", "e", "f" };
    String[] dest = new String[src.length];
    System.arraycopy(src, 1, dest, 0, src.length - 1);  //这个拷贝应该比for循环拷贝块一些
    dest[src.length - 1] = src[0];
      

  5.   

    要不直接用String[] str = {"a", "b", "c", "d", "e", "f", "g"};
    str = new String[]{ "b", "c", "d", "e", "f", "g", "a"};