悟空看八戒烤熟了沒的專欄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一下,歡迎探討;