青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 183,  comments - 10,  trackbacks - 0
下午網宿的一個面試題目,當時沒有答好。先分析如下:

刪除 vector 中大于 n 的數,注意 vector 中并不一定存在 n + 1
最簡單的做法是循環,逐個掃描,到檢查到有大于 n 的元素時,移動后面的元素。這里有另種掃描方式,分別是從左到右和從右到左。
從右到左的方式效率更高,因為避免了移動其他大于 n 的元素。但是兩種方式的時間復雜度都是 O(N ^ 2)。

可以通過先排序然后找到第一個大于 n 的元素的迭代器,然后刪除該迭代器到最后一個元素之間的元素。
但是這種方法改變原來小于等于 n 的元素之間的相對順序。
查找第一個大于 n 的元素的迭代器是先要排序,然后查找。
查找的方法有,直接循環遍歷查找。也可以傳一個函數,用 find_if。也可以用函數對象,函數對象的函數時你可以自己設定想要的參數,還是用 find_if 查找。
這種方法的時間復雜度是 O(NlogN)。

第三種方法是利用 remove_if 函數,但是 remove_if 函數不會真的刪除元素,需要借助于 erase 函數。但是 remove_if 操作的效率和第一種是一樣的,時間復雜度還是 O(N^2)。

實現:
  1 #include <iostream>
  2 #include <vector>
  3 #include <algorithm>
  4 using namespace std;
  5 
  6 // 從左向右掃描刪除移動
  7 void delLeftToRight(vector<int>& data, int n)
  8 {
  9     for (size_t i = 0; i < data.size(); ++i)
 10     {
 11         if (data[i] > n)
 12         {
 13             for (size_t j = i + 1; j < data.size(); ++j)
 14             {
 15                 data[j - 1= data[j];
 16             }
 17             data.pop_back();
 18             --i;
 19         }
 20     }
 21 }
 22 
 23 // 從右向左掃描刪除移動
 24 void delRightToLeft(vector<int>& data, int n)
 25 {
 26     for (size_t i = data.size(); i > 0--i)
 27     {
 28         if (data[i - 1> n)
 29         {
 30             for (size_t j = i; j < data.size(); ++j)
 31             {
 32                 data[j - 1= data[j];
 33             }
 34             data.pop_back();
 35         }
 36     }
 37 }
 38 
 39 // 排序,順序遍歷查找,刪除
 40 void delSort(vector<int>& data, int n)
 41 {
 42     sort(data.begin(), data.end());
 43     vector<int>::const_iterator cit = data.begin();
 44     for (; cit != data.end(); ++cit)
 45     {
 46         if (*cit > n)
 47         {
 48             break;
 49         }
 50     }
 51     data.erase(cit, data.end());
 52 }
 53 
 54 class biggerN
 55 {
 56     int m;
 57 public:
 58     biggerN(int i) : m(i) {}
 59     bool operator ()(int n)
 60     {
 61         return n > m;
 62     }
 63 };
 64 
 65 bool bigger(int n)
 66 {
 67     return n > 10;
 68 }
 69 
 70 // 排序,查找,刪除
 71 void delSortFind(vector<int>& data, int n)
 72 {
 73     sort(data.begin(), data.end());
 74     vector<int>::const_iterator cit;
 75     cit = find_if(data.begin(), data.end(), biggerN(n));
 76     // cit = find_if(data.begin(), data.end(), bigger);
 77     data.erase(cit, data.end());
 78 }
 79 
 80 // 移動,刪除
 81 void delRemove(vector<int>& data, int n)
 82 {
 83     data.erase(remove_if(data.begin(), data.end(), biggerN(n)), data.end());
 84     // data.erase(remove(data.begin(), data.end(), 20), data.end());
 85 }
 86 
 87 void display(const vector<int>& data)
 88 {
 89     for (size_t i = 0; i < data.size(); ++i)
 90     {
 91         cout << data[i] << ' ';
 92     }
 93     cout << endl;
 94 }
 95 
 96 int main()
 97 {
 98     vector<int> data;
 99     for (int i = 20; i > 0--i)
100     {
101         data.push_back(i);
102     }
103     // data.push_back(20);
104     display(data);
105     // delLeftToRight(data, 10);
106     // delRightToLeft(data, 10);
107     // delSort(data, 10);
108     // delSortFind(data, 10);
109     delRemove(data, 10);
110     display(data);
111 }

posted on 2011-05-21 00:18 unixfy 閱讀(1272) 評論(0)  編輯 收藏 引用
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            黄色成人免费观看| 午夜欧美理论片| 欧美日韩综合另类| 欧美另类99xxxxx| 欧美精品自拍| 欧美日韩成人综合天天影院| 99国产精品久久久久老师| 国产精品视频区| 国产精品高潮在线| 国产婷婷精品| 伊人精品成人久久综合软件| 国产日韩专区| 亚洲国产精品激情在线观看| 影视先锋久久| 一区二区三区蜜桃网| 亚洲伊人伊色伊影伊综合网| 亚洲午夜激情网站| 欧美主播一区二区三区| 久久久久久亚洲精品杨幂换脸 | 麻豆成人小视频| 欧美精品日韩www.p站| 欧美日韩三级视频| 国产欧美一区二区三区在线老狼| 国产欧美日韩精品一区| 国产一区二区三区最好精华液| 狠狠久久亚洲欧美| 一区二区高清| 久久综合色88| 亚洲天堂av在线免费| 欧美在线观看视频在线| 亚洲国产精品va在线看黑人| 黄色影院成人| 日韩亚洲国产欧美| 久久人人爽人人爽爽久久| 亚洲精品1区| 欧美在线free| 国产精品蜜臀在线观看| 一区二区三区在线不卡| 一二三区精品福利视频| 久久久一区二区三区| 亚洲精品中文字幕在线| 亚洲综合色在线| 欧美日韩精品福利| 在线成人免费观看| 欧美在线影院在线视频| 亚洲乱码国产乱码精品精| 久久精品国产免费| 国产精品video| 一区二区黄色| 亚洲精品影院| 欧美国产精品中文字幕| 国产日韩精品久久| 欧美亚洲一区三区| 亚洲午夜av在线| 欧美午夜电影完整版| 日韩一级免费观看| 亚洲高清视频在线观看| 久久综合久久综合九色| 国产欧美婷婷中文| 欧美中文字幕在线播放| 亚洲一区二区三区四区视频| 免费成人黄色| 亚洲日本va在线观看| 另类激情亚洲| 免费亚洲电影| 日韩五码在线| 日韩午夜av在线| 国产精品另类一区| 欧美一级播放| 久久久精品国产免费观看同学| 国产啪精品视频| 欧美一区二区高清在线观看| 日韩视频在线一区二区| 欧美日本一区二区视频在线观看| 最新国产精品拍自在线播放| 久热精品视频在线观看一区| 亚洲欧美日韩区| 狠狠色综合色综合网络| 女人色偷偷aa久久天堂| 久久一区亚洲| 一本色道久久综合亚洲精品婷婷 | 国产精品福利影院| 西西裸体人体做爰大胆久久久| 亚洲性视频h| 国产综合久久久久影院| 开元免费观看欧美电视剧网站| 久久国产精品99久久久久久老狼| 久久美女性网| 亚洲精品极品| 亚洲一区网站| 在线 亚洲欧美在线综合一区| 暖暖成人免费视频| 欧美三区美女| 玖玖在线精品| 欧美日韩直播| 美国十次成人| 国产精品久久久久久户外露出| 欧美一级视频| 欧美成人中文| 久久不射电影网| 欧美成人乱码一区二区三区| 日韩视频精品在线| 久久成人精品电影| 亚洲影视九九影院在线观看| 亚洲欧美激情诱惑| 亚洲精选视频在线| 欧美在线免费视屏| 亚洲专区在线| 欧美成人网在线| 久久视频免费观看| 欧美性片在线观看| 欧美激情第一页xxx| 国产精品伦子伦免费视频| 美女在线一区二区| 国产女主播视频一区二区| 欧美成人影音| 国内精品久久久久久久果冻传媒| 91久久夜色精品国产网站| 国产精品稀缺呦系列在线| 欧美激情一二区| 黄色综合网站| 欧美一区二区三区日韩| 日韩亚洲国产精品| 久久阴道视频| 久久婷婷国产麻豆91天堂| 国产精品成人观看视频国产奇米| 久久手机免费观看| 国产伦精品一区二区三区照片91| 亚洲国产综合视频在线观看| 国产精品人人做人人爽| 亚洲欧洲一区二区天堂久久 | 亚洲福利视频二区| 午夜精品久久久久久久久 | 欧美一区二区性| 国产精品久久久久久久9999| 欧美护士18xxxxhd| 在线不卡亚洲| 久久夜精品va视频免费观看| 亚洲综合国产激情另类一区| 久久婷婷国产综合国色天香| 亚洲综合第一页| 国产精品女主播| 亚洲一区国产| 国产精品白丝av嫩草影院| 亚洲国产精品久久久久| 亚洲国产第一页| 欧美成人午夜免费视在线看片 | 一区二区在线观看av| 久久夜色撩人精品| 国产在线观看一区| 久久国产精彩视频| 美腿丝袜亚洲色图| 亚洲精品在线电影| 欧美精品一区二区三区高清aⅴ| 欧美插天视频在线播放| 亚洲大片av| 欧美精品一区二区三区蜜桃| 欧美国产一区视频在线观看| 国产日韩在线亚洲字幕中文| 亚洲一二三区精品| 久久精品国产久精国产一老狼| 国产一区二区黄色| 免费av成人在线| 亚洲深夜福利视频| 久久永久免费| 一区二区黄色| 国产日产欧美a一级在线| 久久精品网址| 亚洲精品日韩久久| 久久精品国产一区二区三区| 国产精品永久入口久久久| 欧美在线不卡视频| 最近中文字幕日韩精品| 亚洲一区二区动漫| 影音先锋久久久| 欧美日韩免费一区二区三区视频| 亚洲视频久久| 欧美成人一区二区三区在线观看 | 国产小视频国产精品| 久久久精品国产免大香伊| 亚洲国内高清视频| 久久精品亚洲精品| 亚洲一区二区免费| 一区视频在线看| 国产精品白丝av嫩草影院| 久久欧美肥婆一二区| 日韩视频中午一区| 欧美高清视频免费观看| 亚洲综合色在线| 亚洲国产片色| 国产麻豆视频精品| 欧美日韩国产综合网| 久久精品综合网| 亚洲欧美国产毛片在线| 亚洲国产另类 国产精品国产免费| 亚洲欧洲99久久| 夜夜嗨av色一区二区不卡| 极品少妇一区二区| 国产人成一区二区三区影院| 久久久欧美精品|