[436] LeetCodeブラシタイトル

日常のコーディング。^ _ ^

1.2つの合計

  • 主要な知識:ポインタ値は、新しいmalloc関数の配列によって保存することができます
  • INT * returnSize:戻り配列のサイズ。ポインタの値を格納し、2を言う
    * returnSize = 2
  • 私の解決策:
  • / ** 
     *注:返される配列をmallocされなければならない、呼び出し側は()無料通話を前提としています。
     * / 
    INT * twoSum(INT * NUMS、INT numsSize、INTターゲット、INT * returnSize){ 
        * returnSize = 2。
        INT * returnArray = malloc関数(はsizeof(INT)*(* returnSize))。
        以下のために(INT i = 0; I <numsSize-1; iは++){ 
            ための(int型J = I + 1、J <numsSize; J ++){ 
                IF(NUMS [I] + NUMS [J] ==ターゲット){ 
                    returnArray [ 0] = I。
                    returnArray [1] = J。
                    returnArrayを返します。
                } 
            } 
        } 
        returnArray [0] = -1。
        returnArray [1] = -1。
        returnArrayを返します。
    }
    

     

2. 2つの数値を追加します。

  • 主要な知識:あなたは、キャリーを検討リスト・トラバーサルと挿入ノード、malloc関数によって新しいノードを考慮し、数字で計算することができません
  • 数字は非常に長いため、この問題での計算に整数を使用しないでください。
  • キャリービットを検討する必要があります。
  • このリンクリストの頭には最初のノードです。
  • 私の解決策:
  • / ** 
     *単一リンクリストのための定義。
     *構造体ListNode { 
     * INTヴァル。
     次の*構造体ListNode *; 
     *}。
     * / 
    
    
    構造体ListNode * addTwoNumbers(構造体ListNode * L1、構造体ListNode * L2){ 
        構造体ListNodeの* P1を、
        構造体ListNodeの* p2と、
        構造体ListNode * L3 = NULL; 
        構造体ListNode * P3 = NULL; 
        P1 = L1; 
        P2 = L2; 
        
        int型carry_bit = 0; 
        一方、(!P1 = NULL || P2 = NULL || carry_bit == 1){ 
            int型NUM1。
            int型からnum2; 
            int型のNUM3。
            IF(P1 == NULL && P2 == NULL && carry_bit == 1){ 
                NUM3 = 1。
                carry_bit = 0;
            } 
            他{ 
                IF(P1 == NULL){ 
                    NUM1 = 0。
                } 
                他{ 
                    NUM1 = P1->ヴァル。
                    P1 = P1->次。
                } 
                IF(P2 == NULL){ 
                    NUM2 = 0。
                } 
                他{ 
                    NUM2 = P2->ヴァル。
                    P2 = P2->次。
                } 
                
                NUM3 = NUM1 + NUM2 + carry_bit。
                IF(NUM3> = 10){ 
                    carry_bit = 1。
                    NUM3 = NUM3 - 10。
                } 
                他{ 
                    carry_bit = 0。
                }  
            }
    
            構造体ListNode * TMP。
            TMP =のmalloc(はsizeof(構造体ListNode))。
            IF(TMP == NULL){ 
                関数fprintf(stderrに、 "メモリ不足\ n"); 
                出口(1)。
            } 
            tmp->ヴァル= NUM3。
            tmp->次= NULL; 
            
            IF(P3 == NULL){ 
                P3 = TMP。
                L3 = P3; 
            } 
            他{ 
                P3->次= TMP。
                P3 = P3->次。
            } 
        } 
        
        L3を返します。
    }
    

 

3。

 

おすすめ

転載: www.cnblogs.com/alex-bn-lee/p/11489581.html