首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >寻找整数数组中整数的最大镜像[CodingBat谜: MaxMirror]

寻找整数数组中整数的最大镜像[CodingBat谜: MaxMirror]
EN

Stack Overflow用户
提问于 2014-06-25 15:38:08
回答 5查看 4.6K关注 0票数 2

我正在尝试解决MaxMirror在CodingBat上的问题:

我们会说数组中的“镜像”部分是一组相邻的元素,在数组中的某个位置,相同的组以相反的顺序出现。例如,{1,2,3,8,9,3,2,1}中最大的镜像部分是长度3( {1,2,3}部分)。返回在给定数组中找到的最大镜像部分的大小。 maxMirror({1,2,3,8,9,3,2,1})→3 maxMirror({1,2,1,4})→3 maxMirror({7,1,2,9,7,2,1})→2

求解条件:

  1. 没有其他帮助方法。
  2. 不要在数组中使用Java.util.Arrays.copyOf或任何其他实用工具。
  3. 不要使用集合。

除{7、7、7、7、6、7、7}外,我得到的解都是可行的,它应该返回5,但我得到了6。我在这里做错了什么?

虽然在CodingBat中,它显示了所有运行的正确,但它是否也显示了CodingBat没有针对所有可能的场景进行检查?

代码语言:javascript
运行
复制
public int maxMirror(int[] nums) {
  final int len=nums.length;
  if(len==0)
  return 0;
  int maxCount=1;
  boolean flag=false;

  for(int i=0;i<len;i++)
  {
     int tempCount=1;
     int count=i;

     for(int j=len-1;j>=0&&(count<len);j--)
     {
        if((nums[count]==nums[j])&&!(flag))
        {
          flag=true;
          count++;
          continue;
        }
        if((nums[count]==nums[j])&&(flag))
        {
          tempCount++;
          count++;
          maxCount=(tempCount>maxCount)?tempCount:maxCount;
         continue;
        }
        if(!(nums[i]==nums[j])&&(flag))
        {
          flag=false;
          count=i;
          tempCount=1;
          continue;
        }
        if((j==count)||(j-count)==1)
        {
          flag=false;
          break;
          }

      }
  }    
      return maxCount;    

}
EN

Stack Overflow用户

发布于 2014-07-16 13:35:14

代码语言:javascript
运行
复制
public int maxMirror(int[] nums) {
 int count=0;
 int MAX=0;
  for(int i=0 ; i<nums.length ; i++)
      for(int j=nums.length-1; j>=0; j--)
         { 
          if(nums[i]==nums[j])
              { count=0;
                  for(int k=0 ; k<nums.length-i ; k++)
                  if((i+k<nums.length)&&(j-k>=0)&&(nums[i+k]==nums[j-k]))
                    count=count+1;
                   else break;
              }
            MAX=Math.max(MAX,count);  
          }

         return MAX;
}
票数 -4
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24413007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档