[Java] 503.次に大きな要素II-配列をすばやくループする方法を学びましょう!!!

ループ配列(最後の要素の次の要素は配列の最初の要素)が与えられた場合、各要素の次に大きい要素を出力します。数値xの次に大きい要素は、配列走査の順序です。この数値の後の最初の数値はそれよりも大きいため、ループ内で次に大きい数値を検索する必要があります。存在しない場合は-1を出力します。

例1:

入力:[1,2,1]
出力:[2、-1,2]
説明:最初の1の次に大きい数は2です;
数2は次に大きい数を見つけることができません;
2番目に大きい数の1ループ検索が必要で、結果も2です。
注:入力配列の長さは10,000を超えません。

代码:
public int[] nextGreaterElements(int[] nums) {
    
    
		int a[]=new int [nums.length];
		Arrays.fill(a,-1);
		for(int i=0;i<nums.length;i++) {
    
    
			int j=i+1;
			while((j+nums.length)%nums.length!=i) {
    
    
				if(nums[(j+nums.length)%nums.length]>nums[i]) {
    
    
					a[i]=nums[(j+nums.length)%nums.length];
					break;
				}
				j++;
			}
		}
		return a;
    }

おすすめ

転載: blog.csdn.net/qq_44461217/article/details/114480197