js

梗概

  • 模拟人类划线,发现重复的元素,就把这个元素标记已划掉
    • 下次遍历的时候就跳过已被划掉的元素
    • 通常是标记元素的索引,而不是值
      • 因为可以有重复值,但是不同的元素

实现

function isSame(arr1,arr2){
    if(arr1.length!==arr2.length)return false
    let mark = new Array(arr2.length).fill(false)
    for(let i=0;i<arr1.length;i++){
        for(let j=0;j<arr2.length;j++){
            if(mark[j])continue;
            if(arr2[j]===arr1[i]){mark[j]=true;break;}
        }
    }
    return mark.every(v=>v===true)
}