アレイの異なる配列二乗値の数(紀要インタビュー質問)

タイトル:二乗値の異なる規則配列、多数の解決{ - 1} 2に戻り、両方の場合において-1,0,1,1だけ0,1二乗値を、{ - 3 -1,0、 0,2、3}がここに戻るには0,1,4,9 4,4のケースを戦うために家族の部屋にあります。
要件:Oの時間複雑度(n)は、空間複雑性O(1)

分析:

広範囲のダブルポインタの問題解決の秩序配列の使用であります

第二に、地図(又はハッシュ)、二点

同様にターゲット= 0そして、各検査ヘッドおよびテールポインタは、0又はこれら3例未満0分析より大きい0に等しい。指定されたターゲットと 数が繰り返されてもよいことに注意は、重いを移動する必要があります。

// 異なる要素の数を返すの二乗後
INT diffSqureNum(constのベクトル< INT >&NUMS)
{ 
    IF(!nums.size())   戻り 0 ;
     int型 L = 0、R&LT nums.size =() - 1 ;
     INT = CNT 0 ;
     一方、(L <= R&LT)
    { 
        IF(NUMS [L] + NUMS [R&LT] == 0 
        { 
            CNT ++ ;
             int型 TMP = NUMS [L];
             一方、(L <= R&LT && NUMS [L ] == TMP)L ++;
            一方、(L <= R && NUMS [R] == -tmp)r--の
        } 
        そう であれば(NUMS [L] + NUMS [R]> 0 
        { 
            CNT ++ INT TMP = NUMS [R]。
            一方、(L <= R && NUMS [R] == TMP)r--の
        } 
        
        { 
            CNT ++ INT TMP = NUMS [L]。
            一方、(L <= R && NUMS [L] == TMP)L ++ 
        } 
    } 
    戻りCNT。
}

 

参考リンク:https://blog.csdn.net/qq_42673507/article/details/90673318

おすすめ

転載: www.cnblogs.com/lfri/p/12572340.html