在 C++ 中查找具有相同数字集的下一个更大的数字!
在这个问题中,我们给定了一个元素N。我们需要找到下一个具有相同数字集的更大数字。我们需要找到大于N的具有相同数字的最小数字。
让我们举个例子来理解这个问题,
输入
N = "92534"输出结果
92543
解决方法
找到下一个更大元素的问题的简单解决方案是通过以下方法-
从最低有效位到最高有效位遍历数字。并在当前元素小于最后一个元素时停止。
在此之后搜索剩余数组中的最小元素。并找到最小的数字并将其与数字交换。
然后对剩余的子数组进行排序并返回输出。
程序来说明我们的解决方案的工作,
示例
#include#include #include using namespace std; void findNextGreater(char number[], int n) { int i, j; for (i = n-1; i > 0; i--) if (number[i] > number[i-1]) break; if (i==0) { cout<<"Next number is not possible"; return; } int x = number[i-1], smallest = i; for (j = i+1; j < n; j++) if (number[j] > x && number[j] < number[smallest]) smallest = j; char temp = number[smallest]; number[smallest] = number[i-1]; number[i-1] = temp; sort(number + i, number + n); cout< 输出结果 下一个具有相同数字集的数字是 92543
热门推荐
10 新年门口花束祝福语简短
11 盘锦结婚祝福语大全简短
12 父母生日祝福语 简短独特
13 家庭恩爱祝福语简短英文
14 高考俄语祝福语大全简短
15 虎年祝福语 诗句唯美简短
16 生日婚礼祝福语简短精辟
17 虎年喝酒拜年祝福语简短
18 教师闺蜜祝福语简短