美文网首页
2021-12-27 825. 适龄的朋友

2021-12-27 825. 适龄的朋友

作者: 16孙一凡通工 | 来源:发表于2021-12-27 09:56 被阅读0次

    排序加双指针
    最开始的二重循环复杂度太大,跑不过数组长的实例。

    Go版本:

    import (
        "fmt"
    )
    func numFriendRequests(ages []int) int {
    
     sort.Ints(ages)
        n:=len(ages);
    count:=0;
    
        i,j:=0,0;
            for k:=0;k<n;k++{
                // i看作y j看作x
    
    
               
               for{
                   if i<k && !check(ages[i],ages[k]){
                       i++;
                   }else{
                       break;
                   }
                  
               }
    
               if j<k{
                   j=k;
               }
                 for{
                   if j<n &&  check(ages[j],ages[k]){
                       j++;
                   }else{
                       break;
                   }
                
                 }
             if j>i{
                count+=j-i-1;
             }
             
    
            }
        
        return count;
    
    }
    func check(x int,y int) bool{
         if y*10<=x*5+70 || y>x || (y>100 && x<100){
                 return false;
        }
        return true;
    }
    

    相关文章

      网友评论

          本文标题:2021-12-27 825. 适龄的朋友

          本文链接:https://www.haomeiwen.com/subject/woaeqrtx.html