leedcode刷题-day1

leedcode455-分发饼干

1、贪心思想:给胃口值最小的朋友分配能满足胃口值的最小尺寸的饼干。
2、步骤:

  • 先对胃口值和饼干尺寸进行排序;
  • 遍历胃口值和饼干尺寸:如果胃口值小于等于饼干尺寸,将这块饼干分给小朋友i,继续遍历下一个胃口值和饼干尺寸;如果胃口值大于饼干尺寸,遍历下一个饼干。
  • 返回被满足的小朋友数量

leedcode135-分发糖果
1、规则:评分高于两边孩子的孩子获得糖果数应该高于相邻孩子。
2、步骤:

  • 先从左往右遍历,通过贪心原则使学生满足左规则。
  • 然后再从右往左遍历,满足右规则。

leedcode435-无重叠区间
题目:给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。
注意:可以认为区间的终点总是大于它的起点;区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。

题解:
1、选择哪个区间作为首个区间?
我们可以不断地寻找右端点在首个区间右端点左侧的新区间,将首个区间替换成该区间。那么当我们无法替换时,首个区间就是所有可以选择的区间中右端点最小的那个区间。
因此我们将所有区间按照右端点从小到大进行排序,那么排完序之后的首个区间,就是我们选择的首个区间。(有多个右端点相同的区间时,任意选择一个,与左端点无关)
2、当确定了首个区间之后,所有与首个区间不重合的区间就组成了一个规模更小的子问题。只要找出其中与首个区间不重合并且右端点最小的区间即可。用相同的方法,我们可以依次确定后续的所有区间。

补充知识点:
1、lambda匿名函数:
[capture_block] (parameters) mutable exception_specification->return_type{ body }

捕捉块(catpure block): 指定如何捕捉所在作用域中的变量,并供给lambda主体使用。 [=]:通过值捕捉所有变量 [&]:通过引用捕捉所有变量
参数(parameter): (可选)lambda表达式使用的参数列表。
mutable:(可选)如果所在作用域的变量是通过值捕捉到,那么lambda表达式主体中可以使用这些变量的副本。
exception_specification:(可选)用于指定lambda可以抛出的异常。
return_type:(可选)返回值的类型。

  • 如果忽略了return_type,那么编译器会根据以下原则判断返回类型:
  • 如果lambda表达式主体的形式为{return expression;}那么表达式return_type的类型为expression的类型。
  • 其他情况下的return_type为void。

2、sort函数
包含在#include<algorithm>
sort(start,end,排序方法):

  • start:要排序的数组的起始地址
  • end:结束的地址(最后一位要排序的地址)
  • 可以不写第三个参数,默认从小到大排序
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值