在 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
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下