1. 程式人生 > >悟空看八戒烤熟了沒的專欄c)4Upqt4SeVk

悟空看八戒烤熟了沒的專欄c)4Upqt4SeVk

Algorithm:

給定一個整數陣列 nums 和一個目標值 target,請你在該陣列中找出和為gai目標值的 兩個 整數。

你可以假設每種輸入只會對應一個答案。但是,你不能重複利用這個陣列中同樣的元素。

示例:

給定 nums = [2, 7, 11, 15], target = 9

因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

/**
 * Note: The returned array must be malloced, assume caller calls free().

*該程式碼在leecode驗證通過;因hash用C還是比較困難,故暫時未實現;
 */
int* twoSum(int* nums, int numsSize, int target) {
  int itime;
    int jtime;
    int *rnums=malloc(sizeof(int ) * 2);
    for(itime = 0; itime < numsSize; itime++)
    {
        //printf("times = %d , nums = %d\n", time,nums[time]);
        for(jtime = 0;jtime<numsSize;jtime++)
        {
            if(nums[jtime] ==  target - nums[itime])
            {
                *rnums = 0;
                *(rnums + 1) = 1;
               goto END;
            }
        }
    }
    *rnums = 1;
    *(rnums + 1) = 1;
END:
    return rnums;
}

Review:

sscanf函式在字串擷取是很有用,本週給其他同事解決一個問題,對長字串進行非特定長度擷取;

 "Category=UNKNOWN STIME=1540283438 ETIME=1540283441 SMAC=\"54:51:1b:db:65:4a\" DMAC=\"84:5b:12:3c:69:38\" SIP=\"218.107.18.126\" DIP=\"82.39.177.83\" SPORT=52171 DPORT=4672 Proto=\"tcp\" TransProto=\"tcp\" RX=0 TX=108 RXPKT=0 TXPKT=2 Method =\"GET\" Url=\"/aaa.html\" Host =\"192.168.101.145\" RetCode =\"404\"";

將以上字串中的TXPKT欄位之後的Method欄位開始的所有資料放到一個緩衝之中;(從Methon開始,欄位和長度都不固定)

sscanf通過  %[^#]可以完成,含義為匹配到#號結束,那麼我們可以通過一個不出現的特殊字元來完成資料的獲取;

方法二:通過字串查詢函式定位TXPKT的位置,來獲取到Method位置的指標;

Tips :

Nginx作為代理伺服器用處很大,通過Openrestry + lua可以構建強大打代理伺服器,同時擁有透明代理和反向代理等功能;大家可以通過嘗試實現;

Share:

最近看了DPDK,裡邊的佇列實現用到了CAS,Share一下,歡迎探討;