1128ドミノ一対の当量数

問題解決のアイデア:

ドミノ[i]が[0]とドミノに元の配列を横断変数iの手段によって1 [I] [1]ビットの大きな数として10の小さい数、など

新しい配列に最初のステップ2.新しい数字、一方新興デジタルの現在のレコード番号

前記デジタルアレイが0より大きく10未満であるため、新しい番号の最大値は99です。

N *(N-1)/ 2 99 0〜4の番号1は、現在の番号が表示さよりも大きい場合には、全体構成は、計算式で、新しいアレイを横切ります

Oの時間複雑度(N)

宇宙複雑性O(100)

コードの実装:

class Solution {
    public int numEquivDominoPairs(int[][] dominoes) {
        int len=dominoes.length;
        int cnt=0;
        int k=0;
        int[] res=new int[100];
        for(int i=0;i<len;++i){
            int temp=0;
            //较小的数作为十位,较大的作为个位
            if(dominoes[i][0]<dominoes[i][1]){
                temp+=dominoes[i][0]*10+dominoes[i][1];
            }
            else{
                temp+=dominoes[i][1]*10+dominoes[i][0];
            }
            res[temp]++;
        }
        //找相同的数字的对数
        for(int i=0;i<100;++i){
            if(res[i]>1){
                cnt+=res[i]*(res[i]-1)/2;
            }
        }
        return cnt;
    }
}

 

公開された158元の記事 ウォン称賛13 ビュー20000 +

おすすめ

転載: blog.csdn.net/junjunjiao0911/article/details/104102668