Leetcode-D35-数组-455. 分发饼干

一、复习

1、136. 只出现一次的数字
利用先排序的思想,再判断即可
2、167. 两数之和 II - 输入有序数组
哈希表

二、455. 分发饼干

今天找了一本刷题书,按照这个顺序去刷,应该会好一些
1、首先看了题解(下次不要了,先自己想一小会)。这个题是贪心算法:局部最优+局部不干扰,得出整体最优。
2、(1)先满足最容易吃饱的小孩子,并且使用最小的饼干;(2)因为涉及到大小关系,所以就先排序。

class Solution:
    def findContentChildren(self, g: List[int], s: List[int]) -> int:
        g.sort()
        s.sort()
        m = len(g)
        n = len(s)
        p=0
        q=0
        count = 0
        while(p<m and q<n):
            if g[p]<=s[q]:
                count += 1
                p+=1
                q+=1
            else:
                q+=1
        return count

Leetcode-D35-数组-455. 分发饼干_第1张图片

3、对着书敲一下c++代码,顺便熟悉一下。
(1)v.begin()是v的起始地址

class Solution {
public:
    int findContentChildren(vector<int>& g, vector<int>& s) {
        sort(g.begin(),g.end());
        sort(s.begin(),s.end());
        int child=0, cookie = 0;
        while(child<g.size() && cookie<s.size()){
            if (g[child]<=s[cookie]) ++child;
            ++cookie;
        }
        return child;
    }
    
};

(2)不知道比python快在了哪里,不过直接return child很好,而且这里面child和cookie的命名也很好。明天要自己敲c++!
Leetcode-D35-数组-455. 分发饼干_第2张图片

你可能感兴趣的:(数据结构,leetcode,算法,职场和发展)