栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在数组中查找引线leaders

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在数组中查找引线leaders

使用两个循环。外循环迭代数组元素,内循环检查数组的正确元素。如果当前元素大于右侧元素,则它是leaders。
java代码:

public static void findLeadersInAnArrayBruteForce(int arr[]) { System.out.println("Finding leaders in an array using brute force : "); for (int i = 0; i < arr.length; i++) { boolean isLeader=true; for (int j = i+1; j < arr.length; j++) { if(arr[i] <= arr[j]) {  isLeader=false; break; }  } if(isLeader) System.out.print(arr[i]+" "); } }

时间复杂度:o(N^2)

解决方案2:
让我们找到更优化的解决方案
我们将使用最右边的元素始终是leaders的属性。

我们将从最右边的元素开始并跟踪最大值。
每当我们获得新的最大值时,该元素就是leaders。
java代码:

public static void findLeadersInAnArray(int arr[]) {  System.out.println("Finding leaders in an array : ");  int rightMax=arr[arr.length-1];  // Rightmost will always be a leader  System.out.print(rightMax+" ");  for (int i = arr.length-2; i>=0; i--) {   if(arr[i] > rightMax)   {    rightMax=arr[i];    System.out.print(" "+rightMax);   }  } }

时间复杂度:o(N)

在数组中查找leaders的 Java 程序:

package org.arpit.java2blog;public class FindLeadersInArrayMain { public static void main(String[] args) {  int arr[]={14, 12, 70, 15, 99, 65, 21, 90};  findLeadersInAnArrayBruteForce(arr);  System.out.println("n==================");  findLeadersInAnArray(arr); } public static void findLeadersInAnArrayBruteForce(int arr[]) {  System.out.println("Finding leaders in an array using brute force : ");  for (int i = 0; i < arr.length; i++) {   boolean isLeader=true;   for (int j = i+1; j < arr.length; j++) {    if(arr[i] <= arr[j])    {      isLeader=false;     break;    }       }   if(isLeader)    System.out.print(arr[i]+" ");  } } public static void findLeadersInAnArray(int arr[]) {  System.out.println("Finding leaders in an array : ");  int rightMax=arr[arr.length-1];  // Rightmost will always be a leader  System.out.print(rightMax+" ");  for (int i = arr.length-2; i>=0; i--) {   if(arr[i] > rightMax)   {    rightMax=arr[i];    System.out.print(" "+rightMax);   }  } }}

当你运行上面的程序时,你会得到以下输出:

Finding leaders in an array using brute force99 90 ==================Finding leaders in an array : 90  99


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/367833.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号