一個長度為N的陣列中包含正數 負數 0,請實現一個函式找出和為0的最長子數列
阿新 • • 發佈:2019-01-10
<strong><span style="font-size:18px;">// #include<iostream> #include<vector> using namespace std; void ZeroLongSet(vector<int> &v) { if (v.empty()) return; int maxdif = 0; int temp=0,temp2; int start=0, end=0; for (size_t i = 0; i != v.size(); ++i) { temp2 = temp; for (size_t j = i; j != v.size(); ++j) { temp2 = temp2 + v[j]; if (temp2 == temp) { if (j - i > maxdif) { maxdif = j - i; start = i ; end = j; } } } temp = temp + v[i]; } if (end != 0) { for (size_t k = start; k != end+1; ++k) cout << v[k] << " "; } } int main(int argc, char *argv[]) { vector<int> v; int value; while (cin >> value) { v.push_back(value); } ZeroLongSet(v); system("pause"); return 0; }</span></strong>