日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > 百度20140925面試算法題一道

百度20140925面試算法題一道

來源:程序員人生   發布時間:2014-10-16 16:19:15 閱讀次數:3229次

題目:一個char數組只包含a,b,c,d,e五種字符,設計一種算法,找出一個包含五種字符的最小區間【a,b】,數組是循環的

O(n)算法:

/* *一個char數組只包含a,b,c,d,e五種字符, *設計一種算法,找出一個包含五種字符的最小區間【a,b】 *數組是循環的 */ #include<iostream> using namespace std; void find(char array[], int size) { int count[5]; for(int i = 5; i <= size; i++)//區間寬度從5開始,遍歷數組中所有區間 { for(int index = 0; index < 5; index++) count[index] = 0;//將a,b,c,d,e的個數都初始化為0 //下面遍歷數組,對于前i個數,將對應的字符數加1 //每遍歷后面一個數,相當于把區間往后移一位,所以需要將前面區間的第一位字符從count數組中去除(減1) //對于每個區間,將count數組的數相乘就能判斷是否包含了五種字符 for(int begin = 0; begin < size + i - 1; begin++) { int tmp_begin = begin; if(begin < i) count[array[begin] - 'a']++; else { count[array[begin - i] - 'a']--; if(begin >= size) tmp_begin = begin - size; count[array[tmp_begin] - 'a']++; } if(begin >= i - 1 && count[0] * count[1] * count[2] * count[3] * count[4] != 0)//a,b,c,d,e個數相乘,判斷是否至少有一個為0 { cout << '[' << begin - i + 1 << ',' << tmp_begin << ']' << endl; return; } } } }
已知有O(n)算法,另外想。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 高清不卡 | 久久视频一区 | 国产主播福利 | 亚洲高清在线播放 | 亚州av一区| 日本综合久久 | 婷婷综合在线观看 | 污网站在线看 | 成人午夜激情 | 日本久久久一区二区三区 | 精品无码久久久久久国产 | 女人一区二区三区 | 亚洲国产精品麻豆 | 欧美精品在线观看 | 国产精品1区2区 | 国产成人在线观看免费网站 | 欧美黄色片在线观看 | 精品久久久久久久久久久 | 日韩成人免费在线 | 欧美一区二 | 日韩免费视频一区二区 | 小草av在线| 一区二区美女 | 精品久久久久久 | 亚洲成人网在线 | 亚洲精品一区二区三区香蕉 | 国产色片在线观看 | 91精品国产91久久综合桃花 | 国产综合一区二区 | 久久三级视频 | 欧美亚洲三区 | 久久久精品免费视频 | 国产精品一区久久 | 另类 欧美 日韩 国产 在线 | av免费网站在线观看 | 久久久一区二区三区 | 在线中文一区 | 欧美日韩色图 | 国产一区二区免费在线 | 精品一级 | 欧美性一区 |