数组移位
昨天今日頭條筆試,發現好簡單,一寫出了幾個問題,回來才想出來。
一個長度不超過10000的整數數組,里面有若干個0,請事先一段代碼,將數組中值為0的元素移動到數組的最前面,其余元素相對位置保持不變。
#include <iostream> #include <vector>using namespace std;// 此處忘記引用了 void moveZero(vector<int> &in){int cnt = 0;for (int i = in.size() - 1; i >= 0; i--){if (in[i] == 0) {cnt++;}// 此處下標搞錯了else {in[i + cnt] = in[i];}}for (int i = 0; i < cnt; i++){in[i] = 0;} }int main() {int a[] = { 1, 2, 0, 0, 3, 0, 0, 4, 0, 5, 1, 0, 6, 7 };vector<int> ivector(a, a + sizeof(a)/sizeof(int));moveZero(ivector);for (auto item:ivector){cout << item << '\0';}return 0; }?
轉載于:https://www.cnblogs.com/daijkstra/p/4815728.html
總結
- 上一篇: 【Unity开发小技巧】Unity中文转
- 下一篇: Node版本管理工具 - Nvm的下载、