06 Leader
2015-12-25 20:13
357 查看
题目 1:Dominator
A zero-indexed array A consisting of N integers is given. Thedominator of array A is the value that occurs in more than half of the elements of A.
For example, consider array A such that
A[0] = 3 A[1] = 4 A[2] = 3A[3] = 2 A[4] = 3 A[5] = -1A[6] = 3 A[7] = 3
The dominator of A is 3 because it occurs in 5 out of 8 elements of A (namely in those with indices 0, 2, 4, 6 and 7) and 5 is more than a half of 8.
Write a function
int solution(vector<int> &A);
that, given a zero-indexed array A consisting of N integers, returns index of any element of array A in which the dominator of A occurs. The function should return −1 if array A does not have a dominator.
Assume that:
N is an integer within the range [0..100,000];
each element of array A is an integer within the range [−2,147,483,648..2,147,483,647].
For example, given array A such that
A[0] = 3 A[1] = 4 A[2] = 3A[3] = 2 A[4] = 3 A[5] = -1A[6] = 3 A[7] = 3
the function may return 0, 2, 4, 6 or 7, as explained above.
Complexity:
expected worst-case time complexity is O(N);
expected worst-case space complexity is O(1), beyond input storage (not counting the storage required for input arguments).
Elements of input arrays can be modified.
题目 2:EquiLeader
A non-empty zero-indexed array A consisting of N integers is given.
The leader of this array is the value that occurs in more than half of the elements of A.
An equi leader is an index S such that 0 ≤ S < N − 1 and two sequences A[0], A[1], ..., A[S] and A[S + 1], A[S + 2], ..., A[N − 1] have leaders of the same value.
For example, given array A such that:
A[0] = 4 A[1] = 3 A[2] = 4 A[3] = 4 A[4] = 4 A[5] = 2
we can find two equi leaders:
0, because sequences: (4) and (3, 4, 4, 4, 2) have the same leader, whose value is 4.
2, because sequences: (4, 3, 4) and (4, 4, 2) have the same leader, whose value is 4.
The goal is to count the number of equi leaders.
Write a function:
int solution(vector<int> &A);
that, given a non-empty zero-indexed array A consisting of N integers, returns the number of equi leaders.
For example, given:
A[0] = 4 A[1] = 3 A[2] = 4 A[3] = 4 A[4] = 4 A[5] = 2
the function should return 2, as explained above.
Assume that:
N is an integer within the range [1..100,000];
each element of array A is an integer within the range [−1,000,000,000..1,000,000,000].
Complexity:
expected worst-case time complexity is O(N);
expected worst-case space complexity is O(N), beyond input storage (not counting the storage required for input arguments).
A zero-indexed array A consisting of N integers is given. Thedominator of array A is the value that occurs in more than half of the elements of A.
For example, consider array A such that
A[0] = 3 A[1] = 4 A[2] = 3A[3] = 2 A[4] = 3 A[5] = -1A[6] = 3 A[7] = 3
The dominator of A is 3 because it occurs in 5 out of 8 elements of A (namely in those with indices 0, 2, 4, 6 and 7) and 5 is more than a half of 8.
Write a function
int solution(vector<int> &A);
that, given a zero-indexed array A consisting of N integers, returns index of any element of array A in which the dominator of A occurs. The function should return −1 if array A does not have a dominator.
Assume that:
N is an integer within the range [0..100,000];
each element of array A is an integer within the range [−2,147,483,648..2,147,483,647].
For example, given array A such that
A[0] = 3 A[1] = 4 A[2] = 3A[3] = 2 A[4] = 3 A[5] = -1A[6] = 3 A[7] = 3
the function may return 0, 2, 4, 6 or 7, as explained above.
Complexity:
expected worst-case time complexity is O(N);
expected worst-case space complexity is O(1), beyond input storage (not counting the storage required for input arguments).
Elements of input arrays can be modified.
int solution(vector<int> &A) { // write your code in C++11 int n=A.size(); if(n==0) return -1; int leader=A[0],countleader=1; for(int i=1;i<n;i++) { if(A[i]!=leader) { countleader--; if(countleader<1) { leader=A[i]; countleader=1; } } else countleader++; } countleader=0; int index=0; // for(int i=0;i<n;i++) { if(A[i]==leader) { countleader++; index=i; } } if((countleader<<1)>n) return index; else return -1; }
题目 2:EquiLeader
A non-empty zero-indexed array A consisting of N integers is given.
The leader of this array is the value that occurs in more than half of the elements of A.
An equi leader is an index S such that 0 ≤ S < N − 1 and two sequences A[0], A[1], ..., A[S] and A[S + 1], A[S + 2], ..., A[N − 1] have leaders of the same value.
For example, given array A such that:
A[0] = 4 A[1] = 3 A[2] = 4 A[3] = 4 A[4] = 4 A[5] = 2
we can find two equi leaders:
0, because sequences: (4) and (3, 4, 4, 4, 2) have the same leader, whose value is 4.
2, because sequences: (4, 3, 4) and (4, 4, 2) have the same leader, whose value is 4.
The goal is to count the number of equi leaders.
Write a function:
int solution(vector<int> &A);
that, given a non-empty zero-indexed array A consisting of N integers, returns the number of equi leaders.
For example, given:
A[0] = 4 A[1] = 3 A[2] = 4 A[3] = 4 A[4] = 4 A[5] = 2
the function should return 2, as explained above.
Assume that:
N is an integer within the range [1..100,000];
each element of array A is an integer within the range [−1,000,000,000..1,000,000,000].
Complexity:
expected worst-case time complexity is O(N);
expected worst-case space complexity is O(N), beyond input storage (not counting the storage required for input arguments).
int solution(vector<int> &A) { // write your code in C++11 int n=A.size(); if(n==1) return 0; int leader=A[0],countleader=1; for(int i=1;i<n;i++) { if(A[i]!=leader) { countleader--; if(countleader<1) { leader=A[i]; countleader=1; } } else countleader++; } countleader=0; //find leader for(int i=0;i<n;i++) { if(A[i]==leader) { countleader++; } } if((countleader<<1)<=n) return 0; int equileader=0; int leadernum=0; for(int i=0;i<n;i++) { if(A[i]==leader) { leadernum++; } if(((leadernum<<1)>i+1)&&((countleader-leadernum)<<1)>n-i-1) equileader++; } 9803 return equileader; }
相关文章推荐
- ural 1142. Relations
- 数据结构实验之排序四:寻找大富翁 【OJ--3401】【堆排序】
- leetcode笔记:Search Insert Position
- ural 1142. Relations
- 20151225jquery学习笔记---编辑器插件
- Struts 2框架的大致处理流程
- OpenGL填充非凸多边形(网格化)
- popupwindow 与 输入法
- LeetCode 22 - Generate Parentheses
- OpenCV_contrib配置
- 1009. 说反话 (20)
- 万一开车撞人了,一位退休交警教给你的方法,一定要收存!
- 边框文字效果的样式
- 记事本项目
- UVA12304 2D Geometry 110 in 1! 计算几何
- Linking Containers Together
- Linux运维常用命令---find
- 寻求公正是一种心理病
- ubuntu12.04 配置android 编译环境,个人经验小结
- 在android移动设备上登录gmail的时候报password错误解决方法!!!!