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

用Java中的一个循环解决codingBat Post4

潘辰龙
2023-03-14

问题是如何用Java中的codingBat解决这个问题。

问题陈述:

给定一个int的非空数组,返回一个新数组,其中包含原始数组中位于原始数组中最后4个之后的元素。原始数组将至少包含一个4。请注意,在Java中创建长度为0的数组是有效的。

post4({2,4,1,2})→ {1, 2}

post4({4,1,4,2})→ {2}

post4({4,4,1,2,3})→ {1, 2, 3}

以下是我的解决方案:

public int[] post4(int[] nums) {

int lastFour=-1;
int[] post4={};

  for(int i=nums.length-1;i>=0;i--)
  {
     if((nums[i]==4))
     {
       lastFour=i;    //find the index of the last 4 in the array
       break;
     }  
   } 
   int newLen=(nums.length-lastFour)-1;
   post4=new int[newLen];   //reassign the post4 array with required length

  for(int j=0;j<newLen;j++)
  {
     post4[j]=nums[lastFour+1];   //assign values from orig. array after last 4
     lastFour++;
  }

  return post4;   
}

但是我使用了2个循环。应该最多使用一个循环来解决。不要使用集合或任何包装类。

共有2个答案

郑波
2023-03-14

您可以使用类数组。。。即:

public int[] post4(int[] nums) {
    int lastFourIndex = 0;
      for (int i = 0; i < nums.length; i++) {

          if(nums[i] == 4)
          {
              lastFourIndex = i;
          }
    }
      return Arrays.copyOfRange(nums, lastFourIndex+1, nums.length);
}

安吉洛

鄂琛
2023-03-14
  • 在迭代创建结果数组之前,假设长度为0
  • 每次找到4时,根据该4的索引nums的长度创建新的结果数组,以存储其余元素
  • 如果数字不是4,请将其放置在结果数组中(如果结果数组长度是0,请不要放置,因为这意味着我们尚未找到任何4,或者它是nums数组的最后一个元素)

这里是示例解决方案

public int[] post4(int[] nums) {

    int[] result = new int[0];

    int j = 0;
    for (int i = 0; i<nums.length; i++){
       if (nums[i] == 4) {
           result = new int[nums.length - i-1];
           j=0;
       }
       else 
           if (result.length>0) result[j++] = nums[i]; 
    }

    return result;
}

 类似资料:
  • 问题是如何用Java中的codingBat解决这个问题。 问题陈述: 返回一个数组,该数组包含与给定数组完全相同的数字,但要重新排列,以便所有偶数都排在所有奇数之前。除此之外,数字可以是任意顺序。您可以修改并返回给定数组,也可以创建新数组。 偶数({1,0,1,0,0,1,1})→ {0, 0, 0, 1, 1, 1, 1} 偶数奇数({3,3,2})→{2,3,3} 偶数奇数({2,2,2})→

  • 我编写了如下代码,但它没有正确返回第一个重复出现的字母。 示例:在单词“statistics”中,重复出现的字母是s、t和i,但字母t的递归速度比字母s和i快,但我的程序返回s而不是t。 根据手头的任务,使用两个for循环返回t需要做什么?

  • 问题内容: 如果我从json.net获得序列化的JSON,如下所示: 我想让淘汰赛在FooList上输出foreach,但是我不确定如何继续,因为$ ref东西可能会抛出东西。 我在想解决方案将以某种方式通过不使用以下方式强制将所有Foos呈现在FooList中: 但这似乎很浪费。 问题答案: 从服务器接收的json对象包含循环引用。在使用对象之前,您必须首先 从对象中删除所有属性,这意味着`$r

  • 问题内容: 我注意到在.each()循环中的jQuery中使用AJAX时遇到问题。执行脚本时,仅更新数据库中的第一条记录。 这是我的脚本: 以及save.php的内容: 我已经读过我可以选择使用同步而不是异步,但是我也读过,这不是一个好习惯。 那么,我实际上如何异步完成此工作并解决问题? 问题答案: jQuery的$ .ajax()返回jQuery XMLHttpRequest对象(“ jqXHR

  • 本文向大家介绍详解在springmvc中解决FastJson循环引用的问题,包括了详解在springmvc中解决FastJson循环引用的问题的使用技巧和注意事项,需要的朋友参考一下 我们先来看一个例子: 输出: 可以看到,这个json如果发到前端是无法使用的,幸好FastJson提供了解决办法,我们来看下,解决办法为禁用循环引用检测,代码如下: 输出如下: 问题是如果我们在spring mvc中