a ={1,2,3,4,5,6,7,8,9,0}
b = {2,4,7,0}
c={22,4,6,10}如何判断一个数组中的所有数都在另一个数组中包含 全部包含返回false 否则返回true判断结果
b和a 比较 返回false;
c和a 比较 返回true;

解决方案 »

  1.   

    for 循环遍历 b,每个元素查看是否在 a 中。有一个不在马上返回 false。
      

  2.   

    主要还是看应用在什么地方
    要求时间复杂度还是空间复杂度高
    一般来说是时间复杂度
    考虑时间复杂度的话
    用bitmap算法
    为a数组建立一个bitmap
    这里面java.util.bitset就可以完成
    初始先遍历一次a建立bitmap
    查找及判定都可以在o(1)时间复杂度内完成
    总的时间复杂度为o(a.length+b.length)
    考虑空间复杂度的话估计要快速排序附近的时间复杂度
    先把a和b排序了
    然后进行比较
    效率相对能高些
    又不太占用额外空间
      

  3.   


    写一个通用的方法
    先判断长度..是谁要包含谁...然后遍历..在这个方法里面拿出这个数组中的每个元素和另一个数组中的每个元素比较..如果有不同的话就break return false这种方法笨是笨了点...但是好写打个广告:
    新群创立,群名为:Java 技術交流,群号为: 36115166
    本群交流JAVA各方面技术.为职业人提供一个交流的平台,同样为新手提供一个解决疑问平台.
    希望大家能够维护好群内的学习氛围 
      

  4.   

    jdk类库就有这样的方法containsAll
      

  5.   

    8楼的ContainslAll是正解!http://java.sun.com/javase/6/docs/api/java/util/Set.html#containsAll%28java.util.Collection%29
      

  6.   

    有api方法为什么不用,顶你!!