一个有符号的有序数组,问这些数平方之后有多少个不重复的数?1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using namespace std;
int func(vector<int> a) {
	int num = 1;
	int pre = abs(a[0]);
	int n = a.size();
	int i = 0, j = n-1;
	while (i < j) {
		if (a[i] > a[j]) {
			if (pre != abs(a[i])) {
				pre = abs(a[i]);
				num++;
			}
			i++;
		} else {
			if (pre != abs(a[j])) {
				pre = abs(a[j]);
				num++;
			}
			j--;
		}
	}
	return num;
}
int main()
{
	int v[] =  {-5,-3,-1,1,1,2};
  	vector<int> a (v, v + 6);
	int num = func(a);
	cout<<num<<endl;
}