zoukankan      html  css  js  c++  java
  • LeetCode

    链接

    455. Assign Cookies

    题意

    给孩子们分饼干,每个人的需求量不同。现给定两个数组,第一个数组为每个孩子的需求量(可理解为质量),第二个数组为每个饼干的size(可理解为质量)。求能满足孩子个数的最大值。

    思路

    解法一:

    1. 给两个数组从小到大排序
    2. 遍历孩子数组,每遍历一个孩子,都在饼干数组中找到能满足的最小值(记录下标,下次只需从这个下标+1找起)
    3. 如果某个孩子没有符合的,那么后面所有的孩子都无法满足了(即直接return答案)

    解法二:
    来自讨论区,对解法一的优化,只用一层循环。但数据量小时解法一更快

    代码

    Java 1:

    public class Solution {
        public int findContentChildren(int[] g, int[] s) {
            Arrays.sort(g);
            Arrays.sort(s);
            int index = -1;
            int ans = 0;
            for (int i = 0; i < g.length; i++) {
                for (int j = index + 1; j < s.length; j++) {
                    if (s[j] >= g[i]) {
                        index = j;
                        ans++;
                        break;
                    }
                    if (j == s.length - 1) return ans;
                }
            }
            return ans;
        }
    }
    // Your runtime beats 79.19% of java submissions
    

    Java 2:

    public class Solution {
        public int findContentChildren(int[] g, int[] s) {
            Arrays.sort(g);
            Arrays.sort(s);
            int i = 0;
            for(int j=0;i<g.length && j<s.length;j++) {
    	        if(g[i]<=s[j]) i++;
            }
            return i;
        }
    }
    // Your runtime beats 41.08% of java submissions
    
  • 相关阅读:
    失落的情
    我有个想法------彩南书屋
    西藏旅游闲记(上)
    夜归
    宝石山再记
    学车的日子(一)
    BootStrapValidator表单验证插件的学习和使用
    shard_row_id_bits & pre_split_regions
    某某大肠_tikv_修改配置参数
    第十二周总结
  • 原文地址:https://www.cnblogs.com/zyoung/p/6728705.html
Copyright © 2011-2022 走看看