回答

收藏

在数组中查找引线leaders

技术问答 技术问答 216 人阅读 | 0 人回复 | 2023-09-12

我们需要打印数组中存在的一切leaders。若元素大于元素右侧,则元素为领导者。
( S: b$ V3 q& _( {例如:
' T) R5 C6 [5 \% sarr[]={14、12、70、15、99、65、21、90}Here 99 and 90 are leader elements                4 F7 N. d  P8 N/ _4 l
    解决方案:                                                               
7 x$ ]0 [8 a1 _: M* {. |5 }% P                                                                使用两个循环。外循环迭代数组元素,内循环检查数组的正确元素。如果当前元素大于右侧元素,则为leaders。
% G% k7 z2 B3 Q$ ?4 |& Ajava代码:6 w5 x% k# L( @' k& }9 g
public static void findLeadersInAnArrayBruteForce(int arr() System.out.println("Finding leaders in an array using brute force : "); for (int i = 0; i 时间复杂:o(N^2)
6 \+ m" x' w6 J2 J- [解决方案2:
# H0 u+ U2 B" }2 D3 R/ V. [: q让我们找到更优化的解决方案  z0 N& A; t, ^0 U" j3 K7 e3 q6 i3 Z5 j
我们将永远使用最右边的元素leaders的属性。
, j* Q0 |7 U. x; q% O我们将从最右边的元素开始,并跟踪最大值。1 w; q' e" T3 ]" b, x
当我们得到新的最大值时,这个元素就是leaders。3 ]  i& ^0 n7 \/ S1 ]/ [/ Q
java代码:1 T- w( m7 m0 f5 G$ }* P  f
public static void findLeadersInAnArray(int arr {  System.out.println(&quot;Finding leaders in an array : &quot;);  int rightMax=arr[arr.length-一、 / Rightmost will always be a leader  System.out.print(rightMax &quot; &quot;);  for (int i = arr.length-2; i>=0; i--) {   if(arr<i> > rightMax)  {     rightMax=arr<i>;    System.out.print(&quot; &quot; rightMax);   时间复杂:o(N)
8 |1 z# F, c! b6 E. B; Z在数组中搜索leaders的 Java 程序:
4 C  C* f  K3 f! ?! T! H. Wpackage org.arpit.java2blog;public class FindLeadersInArrayMain { public static void main(String[] args) {  int arr[]={14findLeadersInAnArrayBruteForce(arr);  System.out.println(&quot;n==================&quot;);  findLeadersInAnArray(arr); } public static void findLeadersInAnArrayBruteForce(int arr {  System.out.println(&quot;Finding leaders in an array using brute force : &quot;);  for (int i = 0; i =0; i--) {   if(arr<i> > rightMax)  {     rightMax=arr<i>;    System.out.print(&quot; &quot; rightMax);   当您操作上述程序时,您将获得以下输出:/ C. N4 a' B8 P$ z3 W
Finding leaders in an array using brute force99 90 ==================Finding leaders in an array :90 99
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则