質問: ### 前提・実現したいこと rubyで競技プログラミングをしていますが、うまくいかない部分があるので質問します。 配列の順番をいじることなく配列の中身が一致しているかどうかを知る方法はないのでしょうか 今現在は二つの配列同士で引き算をして空かどうかで判定していますが、もう少し早さが欲しいのです (例としては[0,3,0,3]と[3,3,0,0]を等しいとみなす)
回答: `arr1.size == arr2.size && arr1.sum == arr2.sum && (arr1-arr2).empty?` ~~適当にしか試してませんので負値が混ざったりすると誤判定するかもしれません。~~ 偶然だったようで、やはり`sort`が必要ですね ``` arr1.size == arr2.size && arr1.sum == arr2.sum && arr1.sort == arr2.sort ``` **追記** ついでにメモ化 ``` module ArrayMemSort refine Array do def sort(*) @sort ||= super end end end using ArrayMemSort ```