回答

收藏

在数组中查找引线leaders

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

我们需要打印数组中存在的一切leaders。若元素大于元素右侧,则元素为领导者。4 b& }6 A7 i/ Z( G4 l" G
例如:$ p$ W) U; A, m
arr[]={14、12、70、15、99、65、21、90}Here 99 and 90 are leader elements                / e& K* k% k* Z+ I# l0 S+ O4 y
    解决方案:                                                               
# h" |* s  s5 }$ A; p8 h                                                                使用两个循环。外循环迭代数组元素,内循环检查数组的正确元素。如果当前元素大于右侧元素,则为leaders。
; M8 \3 s" L+ F  D$ z/ a+ Pjava代码:- ^2 x9 C: I  V5 C2 C3 k+ Q
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)
" m  O) d. c/ ~% X- U解决方案2:
" b9 l* R9 O$ l* B+ l  D" g让我们找到更优化的解决方案
" G1 L3 r  U: y/ B  x我们将永远使用最右边的元素leaders的属性。
3 q+ s% j0 X& d0 A9 \我们将从最右边的元素开始,并跟踪最大值。- e" |( w! o+ }. K. w$ a- R
当我们得到新的最大值时,这个元素就是leaders。! R, B  K9 ]! W( [+ H( S
java代码:
& ^2 R' J/ j4 y: }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)2 R1 u) T1 P# e( F/ ~1 T. E1 y
在数组中搜索leaders的 Java 程序:# F/ }- D( u, I$ n4 |
package 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);   当您操作上述程序时,您将获得以下输出:9 @/ F% x) @: ^% G/ G& h! {4 s
Finding leaders in an array using brute force99 90 ==================Finding leaders in an array :90 99
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则