ループ配列(最後の要素の次の要素は配列の最初の要素)が与えられた場合、各要素の次に大きい要素を出力します。数値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;
}