本帖最后由 xiaopiliu 于 2011-10-13 02:38:48 编辑

解决方案 »

  1.   

    以下代码楼主可以参考import java.util.ArrayList;
    import java.util.List;public class ContainsDemo { public static void main(String[] args) {
    int[] outer = new int[]{3, 1, 2, 3, 4, 3, 1, 3, 3, 2, 0, 1, 0};
    int[] inner = new int[]{2, 3, 1};
    List<Integer> res = new ArrayList<Integer>();
    for(int i=0; i<=outer.length-inner.length; i++){
    boolean found = true;
    for(int j=0; j<inner.length; j++)
    if(outer[i+j]<inner[j]) found=false;
    if(found) res.add(i);
    }
    System.out.println(res.toString());
    }}
      

  2.   

    public static int getWeiZhi(int[] a,int[] b){

    if(a.length>=b.length){
    for(int i=0;i<a.length;i++){
    for(int j=0;j<b.length;j++){
    if(a[i+j]<b[j]){
    break;
    }else{
    if(j==b.length-1){
    return i;
    }
    }
    }
    }
    }else{
    getWeiZhi(b, a);
    }
    return 0;
    } public static void main(String[] args) {
    int[] a={3, 1, 2, 3, 4, 3, 1, 3, 3, 2, 0, 1, 0};
    int[] b={2, 3, 1};
    System.out.println(getWeiZhi(a,b));
    for(int i=2;i<b.length+2;i++){
    System.out.print(a[i]+",");
    }
    }
    我的理解,只要循环比较,数组其中一个位置开始比另外一个数组的所有数都大于或等于就行了
      

  3.   


    magong您好 ,感谢您的解答。我试着把它变成method
    但是对这个返回值还是不能理解,还望能指点一二,谢谢~
    import java.util.ArrayList;
    import java.util.List;public class Oct16 {    public static void main(String[] args) {
            int[] outer = new int[]{3, 1, 2, 3, 4, 3, 1, 3, 3, 2, 0, 1, 0};
            int[] inner = new int[]{2, 3, 1};
            hide( outer, inner);
        }
            public static int [] hide(int [] front, int [] back) {
            List<Integer> res = new ArrayList<Integer>();
            for(int i=0; i<=front.length-back.length; i++){
                boolean found = true;
                for(int j=0; j<back.length; j++)
                    if(front[i+j]<back[j]) found=false;
                if(found) res.add(i);
            }
            System.out.println(res.toString());
    return res;
            }}
      

  4.   

    这样写:
    int[] result = new int[res.size()];
    for(int i=0; i<res.size(); i++) result[i] = res.get(i);
    return result;