编写一个程序来打印数组中的所有领导者。如果一个元素大于其右侧的所有元素,则该元素是领导者。最右边的元素始终是领导者。例如 int 数组 {16, 17, 4, 3, 5, 2},前导为 17、5 和 2。让输入数组为 arr[],数组的大小为 size。
o/p 我得到的是 2 5 17
注意:我想要 o/p 相反的顺序,还有一个在另一个下面(换行符)。
class LeadersInArray
{
/* Java Function to print leaders in an array */
void printLeaders(int arr[], int size)
{
int max_from_right = arr[size-1];
/* Rightmost element is always leader */
System.out.print(max_from_right + " ");
for (int i = size-2; i >= 0; i--)
{
if (max_from_right < arr[i])
{
max_from_right = arr[i];
System.out.print(max_from_right + " ");
}
}
}
public static void main(String[] args)
{
LeadersInArray lead = new LeadersInArray();
int arr[] = new int[]{16, 17, 4, 3, 5, 2};
int n = arr.length;
lead.printLeaders(arr, n);
}
}
预期输出:
17
5
2
米琪卡哇伊
相关分类