本篇部落格是參照cyc的部落格寫的,雙指標部分
167.兩數之和||-輸入有序陣列
因為輸入的陣列是公升序排列的有序陣列,要找到兩個數使得他們相加之和等於目標數。
所以利用公升序排列的特性,雙指標,乙個放頭,乙個放尾。如果兩數相加之和小於目標數,頭指標++,如果兩數相加之和小於目標數,尾指標--;
classsolution ;
}if(numbers[i]+numbers[j]i;
if(numbers[i]+numbers[j]>target)--j;
}return ;
}};
633.平方數之和
也是乙個頭指標乙個尾指標,要判斷是否存在兩個數a和b使得a^2+b^2=c.那麼頭指標從0開始,尾指標從sqrt(c)開始,兩數平方相加,如果大於c就將頭指標++,如果小於c就將尾指標--,直到等於c或者頭指標大於尾指標。
classsolution
return
false
; }
};
345.反轉字串中的母音字母
反轉字串中的母音字母,同樣使用雙指標,乙個在字串頭,乙個在字串尾。哪個指到母音就停下,直到兩個指標都指到母音,進行交換再繼續往後走。
classsolution
return
s; }
};
680.驗證回文字串||
回文字串就是指對稱的字串,所以雙指標乙個放在頭,乙個放在尾,判斷頭和尾是不是相等。因為可以刪除乙個字元。所以對於不同的字元要分別對左和右進行刪除處理,使用遞迴剛剛好。
classsolution
bool sfhw(string s, int index1, int index2, int flag)
else
}return
true
; }
};
88.合併兩個有序陣列
就將陣列2的內容加到陣列1中,將陣列1排序。
classsolution
sort(nums1.begin(),nums1.end());
}};
LeetCode題目1 C解答
題目 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1...
1 C基礎介紹
1.程式執行 解釋 借助乙個程式,那個程式能試圖理解你的程式,然後按照你的要求執行。編譯 借助乙個程式,就像乙個翻譯,把你的程式翻譯成計算機真正能懂的語言 機器語言 寫的程式,然後,這個機器語言寫的程式就能直接執行了。注意,語言本身沒有解釋和編譯之分,只是執行的方式不同而已。2.c語言在 作業系統 ...
1 C 程式設計基礎
1 c表示c程式檔案的字尾名,cpp表示c 程式檔案的字尾名 編寫的c 程式的字尾名既可以用.c也可以用.cpp 2 在linux環境下,c程式和c 程式都可以用gcc和g 來編譯,區別是gcc編譯器會根據檔案字尾名對函式或變數名做某些修正,乙個是c的編譯方式,乙個是c 的編譯方式。而g 無論是對....