【LeetCode每日一练】1395. 统计作战单位数(中等|JS)

一、题目描述

在这里插入图片描述

二、解题思路

取中间点,看左边比它小右边比它大或左边比它大右边比它小的数字个数,最后做排列组合。当然也可以嵌套三个循环来做,但时间复杂度太大了。

三、代码实现

var numTeams = function(rating) {
    
    
  const len = rating.length
  let count = 0
  for(var i=0;i<len;i++){
    
    
    let lmin=0,rmax=0,lmax=0,rmin = 0
    for(let j=0;j<i;j++){
    
    
      if (rating[j]<rating[i]){
    
    
        lmin++
      }else{
    
    
        lmax++
      }
    }
    for(let m=i+1;m<len;m++){
    
    
      if(rating[m]>rating[i]){
    
    
        rmax++
      }else{
    
    
        rmin++
      }      
    }
    count += lmin*rmax + lmax*rmin
  }
  return count
};

猜你喜欢

转载自blog.csdn.net/weixin_40764047/article/details/110471150