上一页 1 2 3 4 5 6 7 8 9 10 ··· 20 下一页
摘要: 由于要让尽可能多的孩子满足,因此对于每个孩子,我们肯定是把能让他满足的最小的饼干分给他,这样大的饼干可以留给其他胃口更大的孩子, 才有可能让更多的孩子得到满足。 因此,对孩子和饼干尺寸分别从小到大进行排序,然后从小到大遍历每一个孩子,尝试给他分配最小的饼干,如果不满足就找下一块最小的饼干。 代码如下 阅读全文
posted @ 2020-10-27 15:27 machine_gun_lin 阅读(131) 评论(0) 推荐(0)
摘要: 如果有A[i] + B[j] + C[k] + D[l] = 0,那么就有C[k] + D[l] = -(A[i] + B[j])。 因此我们可以用两重循环遍历A数组和B数组,同时对A[i] + B[j]的所有可能取值进行哈希。 然后再用两重循环遍历C数组和D数组,看一下之前是否对-(C[k] + 阅读全文
posted @ 2020-10-27 15:20 machine_gun_lin 阅读(77) 评论(0) 推荐(0)
摘要: 脑筋急转弯问题,每次把n-1个数做加一操作,等价于把剩下的那个数做减一操作(因为我们只考虑所有数相对的值)。 所以,经过若干次操作之后让所有数都相等,就等价于对于所有数都减小到当前数组中最小值的减一操作的次数。 代码如下: class Solution { public: int minMoves( 阅读全文
posted @ 2020-10-27 15:14 machine_gun_lin 阅读(68) 评论(0) 推荐(0)
摘要: 贪心,由于一支箭可以取到一个气球的左右端点,因此我们对于每个气球,我们只考虑一维区间的右端点,这样在能射爆当前气球的情况下,有可能能射爆 更多后面的气球。 class Solution { public: int findMinArrowShots(vector<vector<int>>& poin 阅读全文
posted @ 2020-10-27 15:07 machine_gun_lin 阅读(128) 评论(0) 推荐(0)
摘要: 题目要将字符串根据字符出现的频率排序,那我们就将字符的出现次数做一个哈希,然后直接对原字符串根据字符的出现次数 进行降序排序就好了。 class Solution { public: string frequencySort(string s) { unordered_map<char, int> 阅读全文
posted @ 2020-10-27 14:59 machine_gun_lin 阅读(87) 评论(0) 推荐(0)
摘要: 删除一个二叉搜索树中的节点,需要进行情况的分类讨论,看一下将这个节点删除之后是否需要对二叉搜索树进行调整(为了保持树的连接和维持二叉搜索树的性质)。 (1)如果删除的是一个叶子节点,那问题不大,因为它没有左子树和右子树,直接返回NULL就行了,表示它没了。 (2)如果要删除的节点,左右子树都存在,那 阅读全文
posted @ 2020-10-27 14:51 machine_gun_lin 阅读(82) 评论(0) 推荐(0)
摘要: 要进行序列化和反序列化,我们需要把树用一个字符串来表示,并且能够根据这个字符串唯一地确定二叉搜索树的形态。 由于二叉搜索树本身存在“中序遍历得到的序列是递增序列”这样的性质,我们就要解决如何解决空节点的表示的问题 这里我们把空节点用"#"来表示,遍历一遍二叉搜索树,把树转化成一个字符串表示起来,这是 阅读全文
posted @ 2020-10-27 14:35 machine_gun_lin 阅读(178) 评论(0) 推荐(0)
摘要: 题目要求只能用常数空间和线性时间完成这个任务,因此需要用一个比较取巧的做法。 在没有空间限制的情况下,我们会想到对每个值做一个映射,比如用一个哈希表计算每个数出现的次数。但是由于此题对空间进行了限制, 因此我们只能在原数组上进行“映射”,再由观察发现,每个数的值都是1~n内的整数,正好可以将值映射到 阅读全文
posted @ 2020-10-27 14:13 machine_gun_lin 阅读(56) 评论(0) 推荐(0)
摘要: 第一题 5491. 矩阵对角线元素的和 注意正中间的元素会加两次,需要减掉一次。 class Solution { public: int diagonalSum(vector<vector<int>>& mat) { int n = mat.size(); int sum = 0; for(int 阅读全文
posted @ 2020-09-06 10:31 machine_gun_lin 阅读(98) 评论(0) 推荐(0)
摘要: 对于每个位置的两个数之间,都有四种选择:加、减、乘、不填符号(这样两个数就连在一起构成一个更大的数)。 我们可以构造一个代数结构,使得不管下一个位置的数是什么,这个数后面填什么符号,我们都能记录前面已经计算过的字符串的值。 这个代数结构是a + b × c。 a 是我们前面记录过的字符串表达式的值, 阅读全文
posted @ 2020-08-28 11:57 machine_gun_lin 阅读(188) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 10 ··· 20 下一页