leetCode 274 周赛记录

144 阅读1分钟

2124. 检查是否所有 A 都在 B 之前

理解:字符串中不包含 'ba'

var checkString = function(s) { 

return s.search('ba') == -1; 

};

2125. 银行中的激光束数量

理解:统计每行设备数量,然后返回乘积,还可以优化,比如0不计入arr中,在for循环中做乘积运算。

var numberOfBeams = function(bank) { 
    let arr = [], res = 0; 
    bank.forEach(i => { 
    let sum = 0; 
    for (let j = 0; j < i.length; j++) { 
        i[j] == 1 ? sum++ : sum; 
     } 
     arr.push(sum) 
   }) 
   let left = 0, right = 1, len = arr.length; 
   while (right < len) { 
       if (arr[left] != 0 && arr[right] != 0) { 
           res += arr[left] * arr[right]; 
           left++; 
           right++; } 
       else { 
           left = arr[left] == 0 ? left + 1 : left; 
           right = arr[right] == 0 ? right + 1 : right; left == right ? right++ : ''; 
           } 
        } 
      return res; 
  };

 2126.摧毁小行星

理解:先从小到大排序,然后比较大小,注意累加。

var asteroidsDestroyed = function(mass, asteroids) {
    asteroids.sort((a, b) => a - b);
    let len = asteroids.length;
    for (let i = 0; i < len; i++){
        if (h >= asteroids[i]) {
            h += asteroids[i];
        } else {
            return false;
        }
    }
    return true;
};