北京宝利通公司4道面试题

news/2024/11/1 16:25:30/

1) 给定两个字符串,如果一个字符串是另一个字符串的结尾部分相同则返回1,否则返回0, 如 abcddde   dde  则返回1 ;如 abcddde   dce  则返回0

思路:用String类中的endsWith判断一下即可搞定。

 

2)  给定一个字符串将其中连续的四个空格换成tab键。

思路:用String中的replaceAll替换空格为tab

 

3)  F(n)=1+1/1的阶乘+1/2的阶乘+1/3的阶乘+…..1/n的阶乘。

思路:

  //求出1/n的阶乘

  public static double oneJiecheng(int n)
 {
    double d = 1.0;
    for(int i = 0; i < n;i++)
    {
       d *= 1.0/(i+1);
    }
    return d;
 }

 //将各个1/n的阶乘相加即可

 public static double jiechengSunfa(int n)
 {
     double returnValue = 1.0;
    for (int i =0 ; i < n; i++)
    {
         returnValue += oneJiecheng(i+1);
    }
      return returnValue;
 }
 

4)  任意给定一个数字数组,找出其中和最大的连续子数组,如 1 2 3 -1 3 4   最大和数组 3 4。

(注)这里重点讨论一下这个题目的算法,不知道大家是否想到其他的好的算法。现在我将自己想到的这个笨算法跟大家介绍一下。

思路:a.判断数组中的数字是否全是负数,如果是,找出最大的负数来,并转化成数组,即最大的连续子数组;

         b.把数组中的数字转化成字符串,判断如果改数字为负数,则用空格来分开,否则用逗号隔开,如“1,2,3,-1 3,4”;

         c.用字符串分隔处理空格,将此字符串变成一字符串数组,循环此字符串数组中的各个字符串,并递归处理数据,直到最后一个字符不能为负为止,值相加进行比较判断,找出最大的值来,并记录此值对应的数值,此最大值即由最大的连续数组的值相加得来的。

实现:

         public static int getArray(int[] array,int param)
        {
            int p = param;
            if (param < 0)
               return 0;
            if(array[param] < 0)
            {
               p = param - 1;
               return getArray(array,p);
            } 
            return p;
        }
        public static int[] findSubArray(int[] intArray)
       {
          //数组中全部是负数的情况
          int flag = 0;
          for(int i = 0; i < intArray.length;i++)
         {
             if(intArray[i] < 0)
            {
                flag++;
            }
         }
         if(flag == intArray.length)
         {
              int index = intArray[0];
              for(int i = 1; i < intArray.length; i++)
             {
                 if(index < intArray[i])
                  {
                       index = intArray[i];
                  }
            }
            return new int[]{index};
          }  

          //其他情况
         String strTemp = "";
          for(int i = 0; i < intArray.length;i++)
          {
                if(intArray[i] < 0)
               {
                    strTemp += intArray[i] + " ";
               }
                else
               {
                     strTemp += intArray[i] + ",";
               }
   
           }
          if(!strTemp.equals(""))
          {
               strTemp = strTemp.substring(0, strTemp.length()-1);
          }
          String[] flagArray = strTemp.split(" ");
          int[] returnValue = new int[10];
          int paTemp = 0;
          for(int i = 0; i < flagArray.length; i++)
         {
               String[] flagArray1 = flagArray[i].split(",");
               int[] intLength = new int[flagArray1.length];
              for(int j = 0; j < flagArray1.length;j++)
              {
                   intLength[j] = Integer.parseInt(flagArray1[j]);
              }
              int t = getArray(intLength,intLength.length-1);
              int[] destArray = new int[t+1];
              System.arraycopy(intLength, 0, destArray, 0, t+1);
   
              int temp = 0;  
              for(int k = 0; k < destArray.length; k++)
             {
                 temp += destArray[k];
             }
             if(paTemp < temp)
             {
                 returnValue = destArray;
                 paTemp = temp;
             }
   
         }
         return returnValue;
     }

测试:

 int[] test1 = {1,2,3,-1,3,4};
 int[] get1 = findSubArray(test1);
 for(int i = 0; i < get1.length; i++)
 {
  System.out.print(get1[i] + " ");
 }
 System.out.println("/n-------------");
 int[] test2 = {-1,-2,-3,-4};
 int[] get2 = findSubArray(test2);
 for(int i = 0; i < get2.length; i++)
 {
  System.out.print(get2[i] + " ");
 }
 System.out.println("/n-------------");
 int[] test3 = {-1,6,-3,-8,4,3,-6,-8};
 int[] get3 = findSubArray(test3);
 for(int i = 0; i < get3.length; i++)
 {
  System.out.print(get3[i] + " ");
 }

运行结果:


http://www.ppmy.cn/news/361296.html

相关文章

会议终端Mini-MCU功能调研

Mini-MCU功能调研 前言&#xff1a; ​ 要实现终端设备的MCU功能&#xff0c;先要搞清楚什么是MCU&#xff1f;什么又是Mini-MCU&#xff1f;普通MCU和Mini-MCU在功能上有什么区别&#xff1f;搞清楚这几个问题&#xff0c;基本对Mini-MCU就有了较为全面的认识&#xff0c;在…

阿里腾讯华为在行动!程序员远程办公究竟用哪个视频会议好?

对于远程办公&#xff0c;需要解决两个核心关键问题&#xff0c;一是资源数据共享&#xff0c;二是人与人之间的高效沟通&#xff0c;这就避无可避地要谈到「视频会议」。 作者 | 唐小引 头图 | CSDN 下载自 VCG 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 当…

新手报到~请多多关照~

新手报到~请多多关照~ 猴年大吉大利~幸运的猴年~幸福的猴年~收获的猴年~ 祝大家天天开心~

宝利通面试(Polycom)

有2个面试官面试我&#xff0c;一个是小组长和一个经理。进去之后&#xff0c;先自我介绍和相互认识了下&#xff0c;两个面试官看着我的简历&#xff0c;马上出来第一个问题。 1、介绍一个你做过的项目&#xff0c;于是就巴拉巴拉的介绍了一个项目&#xff1b; 2、介绍一下你…

大东电报与雷格斯在全球部署宝利通高清系统

全新虚拟视频会议系统助企业降低差旅成本&#xff0c;减少企业碳污染 全球领先的远程呈现、视频和语音通信解决方案提供商宝利通公司、大东电报局及全球最大的灵活办公环境解决方案提供商雷格斯&#xff0c;共同宣布了一项价值约4500万美元的五年期合作计划。根据该计划&#x…

宝利通笔试题

宝利通笔试题 1. 逻辑题 60分钟 总分100分 数字图形推理题 数学计算题 英文理解选择题&#xff0c;10题一题4分&#xff0c;包括看图表计算大概3题&#xff0c;阅读理解2题&#xff0c;英语排序 2.技术题 4道程序 1) 给定两个字符串&#xff0c;如果一个字符串是另一个…

宝利通取代思科成BT最亲密视频会议合作伙伴

全球IP通信联盟11月19日电 宝利通和BT&#xff08;英国电信&#xff09;昨日宣布结成统一视频会议合作伙伴。这进一步加深了两家公司之间的合作关系&#xff0c;一时之间&#xff0c;宝利通取代思科成了BT在视频领域最亲密的合作伙伴。 BT视频会议部门副总裁兼市场销售主管Bob …

宝利通:接受Siris Capital20亿美元收购条款

在2016年规模较大的企业收购案中&#xff0c;有一个案例遭遇了一段有意思的小插曲。今年早些时候&#xff08;4月15日&#xff09;&#xff0c;Mitel&#xff08;加拿大网络公司&#xff09;曾宣布将以19.6亿美元收购Polycom&#xff08;宝利通&#xff09;&#xff0c;并整合两…