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

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

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

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

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

實現(xiàn):
  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>
            欧美在线关看| 国产精品午夜电影| 一本久久a久久免费精品不卡| 欧美丰满高潮xxxx喷水动漫| 久久久午夜电影| 免费一级欧美在线大片| 亚洲国产成人精品视频| 欧美国产日韩精品| 亚洲欧洲另类| 午夜精品国产精品大乳美女| 久久久久欧美精品| 欧美精选午夜久久久乱码6080| 欧美日韩精品免费观看视频完整| 欧美日韩一区三区| 国产伦精品一区二区三区高清| 一区二区三区在线视频观看| 日韩午夜一区| 久久精品官网| 亚洲高清在线观看一区| 亚洲桃花岛网站| 久久综合99re88久久爱| 欧美三级视频| 激情视频一区二区三区| 亚洲一区二区三区中文字幕在线| 毛片一区二区| 亚洲午夜一区二区| 免费成人av在线| 国产乱码精品1区2区3区| 91久久久久久| 久久免费视频网| 亚洲天堂成人在线观看| 欧美大成色www永久网站婷| 国产日韩在线看| 在线亚洲免费| 亚洲国产专区| 欧美影院视频| 国产精品视频观看| 在线亚洲伦理| 亚洲国产一区二区三区高清| 久久久99精品免费观看不卡| 欧美性色aⅴ视频一区日韩精品| 在线观看三级视频欧美| 午夜天堂精品久久久久| 亚洲精品一区中文| 欧美国内亚洲| 91久久黄色| 噜噜噜91成人网| 性感少妇一区| 国产精品丝袜白浆摸在线| 亚洲天堂av综合网| 亚洲人屁股眼子交8| 美女视频黄a大片欧美| 国产一区二区三区高清播放| 欧美午夜片在线观看| 亚洲高清资源| 欧美插天视频在线播放| 久久精品国产亚洲精品 | 宅男噜噜噜66一区二区| 亚洲一区二区三区精品视频| 免费永久网站黄欧美| 国产午夜精品理论片a级探花| 亚洲免费观看视频| 欧美丰满少妇xxxbbb| 模特精品在线| 中日韩高清电影网| 亚洲最新色图| 国产精品欧美日韩一区| 欧美一区国产一区| 欧美在现视频| 一区国产精品| 亚洲国产精品一区二区第四页av | 裸体丰满少妇做受久久99精品| 国内综合精品午夜久久资源| 麻豆精品在线播放| 蜜桃av一区| 亚洲视频一二区| 午夜精品久久久久久久久久久久久 | 欧美激情精品久久久久久免费印度| 久久国产精品电影| 最新热久久免费视频| 亚洲麻豆国产自偷在线| 国产精品美腿一区在线看| 欧美专区中文字幕| 麻豆久久婷婷| 亚洲直播在线一区| 久久国产成人| 一本大道久久a久久精二百| 亚洲午夜激情| 黄色欧美日韩| 一区二区三区**美女毛片| 国产一区二区电影在线观看| 欧美α欧美αv大片| 欧美午夜电影在线| 麻豆亚洲精品| 欧美天堂亚洲电影院在线观看 | 亚洲精品美女91| 国产一区二区三区在线观看免费视频| 欧美福利在线观看| 国产日韩欧美在线一区| 亚洲日本va午夜在线影院| 国产永久精品大片wwwapp| 99av国产精品欲麻豆| 一区在线电影| 亚洲影院污污.| 亚洲国产精品黑人久久久| 亚洲欧美日韩国产| 亚洲精品一区在线观看| 午夜一级久久| 欧美二区在线| 久久久综合网| 国产精品视频精品| 99这里只有精品| 亚洲激情在线观看| 欧美一区二区性| 午夜精品一区二区三区在线视| 另类春色校园亚洲| 久久久精品国产一区二区三区| 国产精品a久久久久久| 亚洲人成网站777色婷婷| 亚洲福利视频一区二区| 久久国产毛片| 久久久国产91| 国产麻豆91精品| 亚洲免费影视第一页| 亚洲小视频在线观看| 欧美日韩一区二区三区在线| 欧美激情中文字幕乱码免费| 精品1区2区| 久久精品夜色噜噜亚洲aⅴ| 欧美一级精品大片| 国产日韩精品视频一区| 一区二区高清视频| 欧美噜噜久久久xxx| 亚洲区国产区| 亚洲伦理在线免费看| 老司机久久99久久精品播放免费| 久久综合伊人| 亚洲国产99| 美女诱惑黄网站一区| 麻豆免费精品视频| 亚洲国产网站| 欧美久久久久久久| 亚洲免费观看高清完整版在线观看熊 | 亚洲视频在线观看网站| 欧美日韩亚洲系列| 亚洲午夜久久久久久久久电影院 | 日韩视频中午一区| 中文av字幕一区| 国产精品欧美久久久久无广告| 亚洲午夜高清视频| 久久久人成影片一区二区三区观看| 韩国精品主播一区二区在线观看| 久久久天天操| 洋洋av久久久久久久一区| 午夜久久黄色| 精品av久久久久电影| 久久免费视频在线| 亚洲日本va午夜在线电影| 欧美一级视频免费在线观看| 国精产品99永久一区一区| 久久伊人免费视频| 一区二区三区欧美成人| 狼人社综合社区| 亚洲网址在线| 精品粉嫩aⅴ一区二区三区四区| 久久久久免费| 一区二区三区.www| 免费亚洲电影在线| 国产精品国产三级欧美二区| 久久福利资源站| 亚洲靠逼com| 久久精品夜色噜噜亚洲a∨ | 免费日韩视频| 中文日韩电影网站| 久久免费精品视频| 亚洲精品一区二区三区四区高清| 国产精品毛片va一区二区三区 | 亚洲一区二区在| 欧美激情成人在线视频| 午夜精品久久久久久| 在线看欧美日韩| 欧美日韩免费一区| 久久久人成影片一区二区三区观看| 亚洲美女在线观看| 麻豆成人小视频| 亚洲免费一级电影| av成人免费在线| 国产一级揄自揄精品视频| 欧美色中文字幕| 欧美激情综合色综合啪啪| 香蕉久久夜色| 亚洲天天影视| 亚洲精选一区| 亚洲电影一级黄| 久久免费高清视频| 久久精精品视频| 欧美自拍丝袜亚洲| 欧美一级在线亚洲天堂| 亚洲综合99| 亚洲欧美美女|