455. Assign Cookies

题意描述

题目来源: 455. Assign Cookies
给定两个数组s, j, 如果s[i] >= g[j] , 其中 0 <= i < n, 0 <= j < m, 则满意度加一,问
最大的满意值是多少

算法解析
  1. 先将s,j从大到小进行排序
  2. s, j依次枚举
    2.1 如果s[i] >= g[j], 则满意度count加一, i++, j++
    2.2 否则,j++,返回2.1
  3. 返回count
算法分析

排序的时间复杂度是 max(O(nlogn) , O(mlogm))
枚举的时间复杂度是 O(m + n)
所以最终的时间复杂度是 O(nlogn) 其中 n = max(n, m)

代码
    var findContentChildren = function(g, s) {
        var compare = function(value1, value2){
            if(value1 < value2)
                return 1; 
            else if(value1 > value2)
                return -1; 
            else 
                return 0; 
        }

        g.sort(compare); 
        s.sort(compare); 

        var count = 0, 
            i = 0, 
            j = 0; 

        while(i < s.length && j < g.length){
            while(j < g.length && s[i] < g[j])
                j++; 
            if(j < g.length)
                count++; 
            i++; 
            j++; 
        }
        return count; 
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值