503. Next Greater Element II - LeetCode
Description:
Given a circular array (the next element of the last element is the first element of the array), print the Next Greater Number for every element. The Next Greater Number of a number x is the first greater number to its traversing-order next in the array, which means you could search circularly to find its next greater number. If it doesn't exist, output -1 for this number.
Example 1:
Input: [1,2,1] Output: [2,-1,2] Explanation: The first 1's next greater number is 2;
The number 2 can't find next greater number;
The second 1's next greater number needs to search circularly, which is also 2.
Note: The length of given array won't exceed 10000.
Accepted
58,855
Submissions
112,982
Solution:
class Solution { public int[] nextGreaterElements(int[] nums) { boolean flag=false; int[] res = new int[nums.length]; for(int i = 0 ; i<nums.length; i++){ flag = false; for(int k = i+1; k<nums.length; k++){ if(nums[k]>nums[i]){ //System.out.println(" greater "+ nums[k]); res[i] = nums[k]; flag = true; break; } } if(!flag){ for(int m = 0; m<i; m++){ if(nums[m]>nums[i]) { //System.out.println(" greater 2 "+ nums[m] ); res[i] = nums[m]; flag = true; break; } } } if(!flag){ //System.out.println(" -1 "); res[i] = -1; } } return res; } }