三角形的最大周長、二維數組的查找和擴展(小米筆試題)—— JavaScript練練編程題(一)

最近的筆試讓我發現本身的編程題,思路是有的,可是太慢了。深知本身菜,決定天天都練練,從淺入深。前端

在開始以前,提醒一下和我同樣是剛開始去參加筆試的,若是在牛客網上筆試的必定要提早看編程

判題系統使用幫助:https://www.nowcoder.com/discuss/276?type=post&order=time&pos=&page=41數組

由於他要輸入輸出,會致使你的代碼有些變化,因此要提早適應。網絡

重要的是,它取到的值是字符串,分割後是字符串數組。這個要當心函數

三角形的最大周長post

給定由一些正數(表明長度)組成的數組 A,返回由其中三個長度組成的、面積不爲零的三角形的最大周長。spa

若是不能造成任何面積不爲零的三角形,返回 0設計

示例 1:code

輸入:[2,1,2]
輸出:5
示例 2:blog

輸入:[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)
相關文章
相關標籤/搜索