在Java中查找大于其左侧元素的数组元素?


数组是一种线性数据结构,其元素存储在连续的内存位置。

根据题目要求,我们给定一个包含一些随机整数值的数组,并且我们必须使用Java编程语言找出所有大于其左侧所有元素的数字。

让我们开始吧!

举几个例子

实例1

给定数组 = [1, 2, -3, -4, 0, 5]。

大于其左侧所有元素的数字 = 2, 5

实例2

给定数组 = [-1, 0, 4, 6, 8, -5]。

大于其左侧所有元素的数字 = 0, 4, 6, 8

实例3

给定数组 = [-2, 3, -9, 12, 0, -7]。

大于其左侧所有元素的数字 = 3, 12

算法

步骤1 - 通过静态输入方法声明一个包含一些随机整数值的数组。

步骤2 - 使用for循环迭代所有元素,我们检查当前数字是否大于其左侧所有元素。

步骤3 - 如果我们发现当前数字大于其左侧所有元素,则打印该数字并进行下一个检查。

步骤4 - 如果我们在数组中没有找到任何更大的值,则打印“N/A”。

语法

要获取数组的长度(数组中元素的数量),数组有一个内置属性,即length

以下是其语法:

array.length

其中,“array”指的是数组引用。

多种方法

我们提供了不同方法的解决方案。

  • 不使用用户自定义方法

  • 使用用户自定义方法

让我们逐一查看程序及其输出。

方法1:不使用用户自定义方法

在这种方法中,我们声明一个包含一些随机整数值的数组,并使用我们的算法查找当前数字是否大于其左侧所有元素,并将该数字作为输出打印。

示例

public class Main {
   public static void main (String[ ] args){

      //declare the first integer type array and store some random integer values
      int inputArray[] = { 1,2,3,8,5};

      //if no greater element present in Array
      int count = 0;

      //output line
      System.out.println("Array elements which are greater than its all left element:");

      //initiate the loop to find the greater elements
      for (int i = inputArray.length - 1; i > 0; i--){
         int flag = 0;
         for (int j = i - 1; j >= 0; j--){
            if (inputArray[i] <= inputArray[j]){ 
               flag = 1; 
               break; 
            } 
         }
         if (flag == 0) 
         System.out.print(inputArray[i] + " "); 
         count+=1;
      }
      //if no greater value detected
      if(count==0){

         //print not available as output
         System.out.print(" N/A ");
      }
      System.out.print("\n");
   }
} 

输出

Array elements which are greater than its all left element:
8 3 2

方法2:使用用户自定义方法

在这种方法中,我们声明一个包含一些随机整数值的数组,并将该数组和该数组的长度作为参数传递给用户自定义方法,在用户自定义方法中使用该算法查找当前数字是否大于其左侧所有元素,并将该数字作为输出打印。

示例

public class Main {
   public static void main (String[ ] args){
      
      //declare the array and initialize it with integer values
      int inputArray1[] = { 132, 145, 12,-121, 765};
     
      //call the user-defined method and pass the array with its length
      greaterThanLeft(inputArray1,inputArray1.length);
   }
      
   //user defined method
   public static void greaterThanLeft (int[] arr,int n){
         
      //declare an integer value for counting the greater elements
      int count = 0;
         
      //output line
      System.out.println("Array elements which are greater than its all left element:");
         
      //take a for loop to iterate and find the greater elements
      for (int i = n - 1; i > 0; i--){
         int flag = 0;
         for (int j = i - 1; j >= 0; j--){
            if (arr[i] <= arr[j]){ 
               flag = 1; 
               break; 
            } 
         }
         if (flag == 0) 
            System.out.print(arr[i] + " "); 
         count+=1;
      }
         
      //if no greater value detected
      if(count==0){
        
         //print not available as output
         System.out.print(" N/A ");
      }
      System.out.print("\n");
   }
} 

输出

Array elements which are greater than its all left element:
765 145

在本文中,我们探讨了在Java中查找大于其左侧所有元素的数组元素的不同方法。

更新于:2023年3月1日

372 次浏览

启动您的职业生涯

完成课程后获得认证

开始
广告