zoukankan      html  css  js  c++  java
  • 三角形的最大周长、二维数组的查找和扩展(小米笔试题)—— JavaScript练练编程题(一)

    最近的笔试让我发现自己的编程题,思路是有的,但是太慢了。深知自己菜,决定每天都练练,从浅入深。

    在开始之前,提醒一下和我一样是刚开始去参加笔试的,如果在牛客网上笔试的一定要提前看

    判题系统使用帮助:https://www.nowcoder.com/discuss/276?type=post&order=time&pos=&page=41

    因为他要输入输出,会导致你的代码有些变化,所以要提前适应。

    重要的是,它取到的值是字符串,分割后是字符串数组。这个要小心

    三角形的最大周长

    给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。

    如果不能形成任何面积不为零的三角形,返回 0

    示例 1:

    输入:[2,1,2]
    输出:5
    示例 2:

    输入:[1,2,1]
    输出:0
    示例 3:

    输入:[3,2,3,4]
    输出:10
    示例 4:

    输入:[3,6,2,3]
    输出:8

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/largest-perimeter-triangle
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    //1.0  108ms  38.1MB  2020-3-29
    var largestPerimeter = function(A) {
        A.sort((v1,v2)=>{return v2-v1});
        if(A.length<3){
          return 0;
        }
        else{
          for(let i=1;i<A.length-1;i++){
              if(A[i-1]<A[i]+A[i+1]){
                return (A[i-1]+A[i]+A[i+1]);
              }
          }
          return 0;
        }
    };
    
    // 2.0 76ms 36.8MB  2020-3-29
    var largestPerimeter = function(A) {
        
        for(let i=0;i<A.length;i++){
            for(let j=i+1;j<=A.length;j++){
                let temp;
                if(A[i]<A[j]){
                    temp = A[j];
                    A[j] = A[i];
                    A[i] = temp 
                }
            }
            if(i>=2&&A[i-2]<A[i-1]+A[i]){
              return (A[i]+A[i-1]+A[i-2]);
            }
        }
        return 0;
    };

    二维数组的查找

    在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

    //202/3/30   63ms  7828k
    function Find(target, array)
    {
        let arr =[];
        for(let i = 0;i<array.length;i++){
            for(let j = 0;j<array[i].length;j++){
              // console.log(target);
              arr.push(array[i][j])
            }
        }
        if(arr.includes(target)){
          return true; 
        }else{
          return false;
        }
    }

    小米2019的前端实习编程题

    设计一个函数,两个参数,第一个参数为整数的数组,第二个参数为标杆值,取数组中任意符合两个数相加为标杆值的下标相加到一起的值
    传入一串字符串(如下例子所示),转义为数组,除去数组中最后一位数字作为标杆值,取数组中任意符合两个数相加为标杆值的下标,输出所有符合要求的下标的和。
    如下解释:
    value:0,1,5,11,17,16,2,5,10,30,12
    index:1 3  6  8
    输出结果为18
    // 2020/3/30  219ms  5476k
    let line = '0,1,5,11,17,16,2,5,10,30,12';
        var lines = line.split(',');
        let arrList = [];
        for(let i = 0; i<lines.length-1;i++){
            arrList.push(lines[i])
        }
        let tar = lines[lines.length-1];
        console.log(arrList,tar);
        function Find(target,arr){
          var result = 0 ;
          for(let i = 0;i<arr.length;i++){
              for(let j = i+1;j<arr.length;j++){
                  if(parseInt(target) == parseInt(arr[i])+parseInt(arr[j])){
                    console.log(i,j);
                      result = result+i+j
                      
                  }else{
                      continue;
                  }
              }
          }
            console.log(result);
          return result;
        }
        Find(tar,arrList)
     
  • 相关阅读:
    CSS笔记
    EasyUI笔记
    EasyUI treegrid 获取编辑状态中某字段的值 [getEditor方法获取不到editor]
    2019.10.12解题报告
    %lld 和 %I64d
    关于kmp算法
    洛谷p2370yyy2015c01的U盘题解
    About me & 友链
    关于Tarjan
    洛谷p3398仓鼠找suger题解
  • 原文地址:https://www.cnblogs.com/jfen625/p/12601276.html
Copyright © 2011-2022 走看看