放假回家好久沒寫**了
題目描述
實現乙個演算法,確定乙個字串的所有字元是否全都不同。這裡我們要求不允許使用額外的儲存結構。
給定乙個string inistring,請返回乙個bool值,true代表所有字元全都不同,false代表存在相同的字元。
保證字串中的字元為ascii字元。字串的長度小於等於3000。
/** 解題思路
* 1:可以用位圖來做,由於是accii碼,所以字元取值範圍為0~255,只需建立乙個256的整形陣列掃瞄一遍前256個字元然後對字元
* 所對應的整形值+1即可,然後再掃一遍整形陣列,有》2的值就返回false,否則返回true(但是本體不允許用額外儲存空間)
** 2:雙重掃瞄(由於本題不允許有額外的儲存空間),但是只要掃瞄前256個字元即可(鴿巢原理)
** 3:排序:如果不限定accii碼可以用排序做o(nlogn)的時間複雜度
* * 其他大神的比較好的思路:
* parition基於快速排序的partition,可以邊排序邊找重複,也即是每次partition之後,
* 判斷中間key元素與兩邊元素是否相同,相同則返回false,不同再進行下一輪partition.
* 時間複雜度也是o(nlongn)。
*/附帶雙重迴圈的**:
1public
boolean
checkdifferent(string inistring) 910
int maxlen = inistring.length() > 256 ? 256: inistring.length();
1112
for(int i = 0; i < maxlen; i++)
13for(int j = i + 1; j < maxlen; j++)
1419}20
21return
true;22
23 }
資料結構 第一發
有改進和優化的地方,希望大家幫助指出。1.1 兩個集合的並 include include using namespace std vector union1 vector a,vector b int main cin.clear while cin a c union1 a,b for int ...
開博第一發
終於鼓起勇氣來開了個人部落格,之前也知道有這個東西,一直不想弄它,個人有些懶散,估計以當時的個想法跟狀態開了部落格只能是寫些文學性質的文章。不會有關於技術的東西出現。現在面臨找工作了,再不專心學學技術說不過去。大學看了不少雜書,個人想法蠻多的,技術卻基本沒有怎麼學過,寫下這篇部落格乙個是給以後的部落...
OpenCV第一發 測試VS配置OpenCV
最近看到網上的視覺處理特別有意思,作為乙個甚至是計算機的門外漢來說直接學習第三方庫是很困難的,悔恨當初沒有去學計算機專業,哈哈哈哈哈哈哈哈哈,沒辦法了,為了對得起我的好奇心,我決定開始攻克它。第四步 開幹.配置環境變數,我的目錄是 e opencv build bin c 新增庫檔案目錄,我的目錄是...