当前位置: 首页 > 知识库问答 >
问题:

最多删除一个元素后严格递增数组的Java程序测试

扶开诚
2023-03-14

给定一个整数序列作为一个数组,确定是否可以通过从数组中移除不超过一个元素来获得一个严格递增的序列。

对于sequence=[1,3,2,1],输出应为almostreadingSequence(sequence)=false;这个数组中没有一个元素可以为了得到严格的递增序列而被移除。

对于sequence=[1,3,2],输出应该是almostreadingSequence(sequence)=true。可以从数组中移除3,以得到严格递增的序列[1,2]。或者,您可以移除2以得到严格递增序列[1,3]。

下面给出了我为上面写的代码,但对于序列[1,2,3,4,3,6]来说,它并不令人满意实际输出=false预期输出=true

boolean almostIncreasingSequence(int[] sequence) {
        int max = Integer.MIN_VALUE, count = 0;
        boolean flag = true;
        for (int j = 0; j < sequence.length-1 ; j++){
              if ( max >= sequence [j] || sequence[j]>=sequence[j+1]){
                 count++;
              }
              else
                 max = sequence[j];
              if ( count > 1){
                 flag = false;
                 break;
              }
        }        
        return flag; 
}

[时间限制]:3000ms(java)[input]:Array.Integer序列

保证约束条件:2≤Sequence,长度≤105,-105≤Sequence[i]≤105。

[输出]:布尔值

如果可以从数组中移除一个元素以获得严格递增的序列,则返回true,否则返回false。

共有1个答案

常永怡
2023-03-14

这是可以通过从原始程序中删除内容来修复的错误之一:

boolean almostIncreasingSequence(int[] sequence) {
    int max = Integer.MIN_VALUE, count = 0;
    boolean flag = true;
    for (int j = 0; j < sequence.length; j++){
          if ( max >= sequence[j]){
             count++;
          }
          max = sequence[j];
          if ( count > 1){
             flag = false;
             break;
          }
    }        
    return flag; 
}

最初版本的主要问题是,同一个无序的地方被发现了两次。只需删除其中一个检查,同时添加一个循环迭代就可以解决这个问题。

 类似资料:
  • 本文向大家介绍php中删除数组的第一个元素和最后一个元素的函数,包括了php中删除数组的第一个元素和最后一个元素的函数的使用技巧和注意事项,需要的朋友参考一下 对于一个php数组,该如何删除该数组的第一个元素或者最后一个元素呢?其实这两个过程都可以通过php自带的函数 array_pop 和 array_shift 来完成,下面就具体介绍一下如何来操作。 (1)使用 array_pop 删除数组的

  • 我有一个二维数组,其中最后的元素是空的。这样地: 现在我想删除空元素,并获得正确的新大小。长度 我试着这样做,但不起作用: 有什么好办法吗?

  • 返回一个数组中除了最后一个元素以外的所有元素。 使用 arr.slice(0,-1) 返回排除了最后一个元素的数组。 const initial = arr => arr.slice(0, -1); initial([1, 2, 3]); // [1,2]

  • 给定一个列表{x_i},我想要找到从每个元素开始的最长的递增子序列,使得起始元素包含在子序列中。 最明显的方法是对每个元素执行通常的最长递增子序列算法,给出O(n^2logn)。这能打吗?

  • 本文向大家介绍JavaScript数组中的第一个元素和最后一个元素?,包括了JavaScript数组中的第一个元素和最后一个元素?的使用技巧和注意事项,需要的朋友参考一下 数组是一组元素。每个元素都有其自己的 索引值。我们可以使用这些索引访问任何元素。但是,对于最后一个元素,直到知道数组中存在的元素数量,我们才知道索引。在这种情况下,我们必须使用逻辑。让我们简要地讨论这些细节。 访问第一个元素 因

  • 本文向大家介绍java删除数组中的某一个元素的方法,包括了java删除数组中的某一个元素的方法的使用技巧和注意事项,需要的朋友参考一下 实例如下: 运行结果: [1, 2, 4, 5, 9, 8, 0] 请输入要删除第几个元素: 3 [1, 2, 0, 5, 9, 8] 以上就是小编为大家带来的java删除数组中的某一个元素的方法全部内容了,希望大家多多支持呐喊教程~