[leetcode]-503. Next Greater Element II(C语言)
2018-03-14 22:04
435 查看
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./**
* Return an array of size *returnSize.
* Note: The returned array must be malloced, assume caller calls free().
*/
int* nextGreaterElements(int* nums, int numsSize, int* returnSize) {
*returnSize=numsSize;
int *res;
res=(int *)calloc(*returnSize,sizeof(int *));
int i,j;
for(j=0;j<numsSize;j++)
{
for(i=(j+1)%numsSize;j!=i;i=(i+1)%numsSize)
{
if(nums[i]>nums[j])
{
res[j]=nums[i];
break;
}
}
if(i==j)
res[j]=-1;
}
return res;
}
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./**
* Return an array of size *returnSize.
* Note: The returned array must be malloced, assume caller calls free().
*/
int* nextGreaterElements(int* nums, int numsSize, int* returnSize) {
*returnSize=numsSize;
int *res;
res=(int *)calloc(*returnSize,sizeof(int *));
int i,j;
for(j=0;j<numsSize;j++)
{
for(i=(j+1)%numsSize;j!=i;i=(i+1)%numsSize)
{
if(nums[i]>nums[j])
{
res[j]=nums[i];
break;
}
}
if(i==j)
res[j]=-1;
}
return res;
}
相关文章推荐
- 10--LeetCode【Single Number】|C语言|
- [leetcode]-507. Perfect Number(C语言)
- LeetCode-27-Remove Element(C语言实现)
- [C语言][LeetCode][232]Implement Queue using Stacks
- Leetcode c语言-Longest Palindromic Substring
- [C语言][LeetCode][59]Spiral Matrix II
- [C语言][LeetCode][219]Contains Duplicate II
- [leetcode-54]Spiral Matrix(C语言)
- leetcode 3sum c语言
- 4---LeetCode【tag: Array】【Remove Duplicates from Sorted Array】|C语言|总结
- leetcode 1. Two Sum (C语言)12
- [leetcode]Maximum Depth of Binary Tree (求二叉树的最大深度 C语言)
- leetcode 617. Merge Two Binary Trees(C语言,二叉树求和,递归)53
- Leetcode 2.Add Two Numbers的c语言解决
- LeetCode-3-Longest Substring Without Repeating Characters(C语言实现)
- leetcode 172. Factorial Trailing Zeroes(C语言,阶乘中尾数0的个数)26
- LeetCode_Easy心得:7. Reverse Integer(C语言)
- 【C语言】LeetCode 7. Reverse Integer
- [leetcode]-167. Two Sum II - Input array is sorted(C语言)
- [leetcode]-724. Find Pivot Index(C语言)