增加整数数组中的整数值

我对增加一维整数数组中的值有疑问。例如,像这样的数组[0,0,0,0],我想将数组中最远的位置增加一个 so [0,0,0,1]

例如,我想继续将此值增加到设定的限制[0,0,0,3],一旦达到该限制,我想将整数的值直接增加到左侧 1 并重置最右侧,[0,0,1,0]然后再重复一遍以最终获得输出像这样

[0,0,1,3]-> [0,0,3,3]->[0,1,0,0]

请注意,我确实跳过了几个步骤,但每次我只想增加 1。

这就是我想用于 DFS 的。数组的大小也可以改变,但只有在第一次创建时才会改变,所以一次运行的大小可能是 20,而另一次运行可能是 5,所以使用一堆 for 循环是行不通的。

我也不是在寻找答案,只是朝着正确的方向提示。


牧羊人nacy
浏览 202回答 3
3回答

江户川乱折腾

就像是function IncrementOne(int array[], int maxArrayInt, int maxArrayLength) {    int i = maxArrayLength - 1;    bool c = false;    do {       int p = array[i];       p = p + 1;       c = p > maxArrayInt;       if(c)           array[i] = 0;       else           array[i] = p;       i = i - 1;    }    while(c && i >= 0)}调用 IncrementOne 函数(即IncrementOne([0,0,3,3], 4, 3)对于您的示例)。如果需要,可以自动导出 maxArrayLength。数组在 do / while 循环中至少运行一次在 do while 循环中,获取数组中的最大值增量值检查值是否大于 maxArrayInt如果是,则将最右边的值设置为 0 并再次运行循环如果不是,则使用递增的值设置最右边的值并退出循环

繁星淼淼

创建一个整数数组,然后对要更新的数组元素使用增量运算符。int [] myIntArray = new int[10];int myCurrentPos = 0;...myIntArray[myCurrentPos] = 1;...if((myIntArray[myCurrentPos] +1) == myMaxValue) {  myIntArray[myCurrentPos] = 0;  myCurrentPos++;  myIntArray[myCurrentPos] = 1;    }  else {myIntArray[myCurrentPos]++;  }例如,您将想要扩展我包含的检查,例如数组大小的附加边界。

犯罪嫌疑人X

你基本上想要的是一个基数为 4 的数字系统。Base 4      Base 100000    ->    00001    ->    10002    ->    20003    ->    30010    ->    40011    ->    50012    ->    60013    ->    70020    ->    8... 等等。因此,保留一个以 10 为基数的数字计数器,将它们转换为您的基数(在本例中为基数 4)并将该表示适当地存储在您的数组中。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java