蓝桥杯 ALGO-79 删除数组0元素(水题、数组)
蓝桥杯 ALGO-79 删除数组零元素(水题、数组)
【思路】:1.数组移动。2.vector。
【AC代码】:数组移动。
#include <iostream> #include <algorithm> #include <vector> #include <cstdio> #include <cstring> using namespace std; int CompactIntegers(int *p, int n) { int i = 0, j = 0; for (i = 0; i < n; i++) { if (0 == p[i]) { for (j = i+1; j < n; j++) p[j-1] = p[j]; n--; i--; } } return n; } int main() { //freopen("in.txt", "r", stdin); int n = 0, i = 0; cin >> n; int *p = (int*)malloc(n*sizeof(int)); for (i = 0; i < n; i++) cin >> p[i]; int len = CompactIntegers(p, n); cout << len << endl; for (i = 0; i < len; i++) cout << p[i] << " "; }
#include <iostream> #include <algorithm> #include <vector> #include <cstdio> #include <cstring> using namespace std; int main() { //freopen("in.txt", "r", stdin); int n = 0, i = 0; cin >> n; vector<int> a(n); vector<int> :: iterator Iter; //input for (i = 0; i < n; i++) cin >> a[i]; //delete for (Iter=a.begin(); Iter != a.end(); ) { if ((*Iter) == 0) a.erase(Iter); else Iter++; } //output cout << a.size() << endl; for (Iter=a.begin(); Iter != a.end(); Iter++) { cout << (*Iter) << " "; } }