三角形的最大周长、二维数组的查找和扩展(小米笔试题)—— 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)
 
原文地址:https://www.cnblogs.com/jfen625/p/12601276.html