笔试——Day29

第一题

题目

排序子序列

在这里插入图片描述

思路

贪心: 上升的、下降的都找到最远

  • 当前处于上升,那就找到下一个下降的位置;
  • 当前处于下降,那就找到下一个上升的位置;

代码

在这里插入图片描述

第二题

题目:

消减整数

在这里插入图片描述

思路

贪心:
每次要么减step,要么减2 * step,为了次数最少,优先选择后者,但一定有前提条件,看下面推导

h - ( n1 * step) - (n2 * step) - (n3 * step) ...... - (nn * step)
=> (h - n * step == 0)

因为n是整数,所以有h % step == 0

代码

在这里插入图片描述

第三题

题目:

最长上升子序列(二)
在这里插入图片描述

思路

贪心 + 二分在考虑最⻓递增⼦序列的⻓度的时候,其实并不关⼼这个序列⻓什么样⼦,我们只是关⼼最后⼀个元素是谁。这样新来⼀个元素之后,我们就可以判断是否可以拼接到它的后⾯。

  • 创建⼀个数组,统计⻓度为x的递增⼦序列中,最后⼀个元素是谁。为了尽可能的让这个序列更⻓,我们仅需统计⻓度为x 的所有递增序列中最后⼀个元素的最⼩值

  • 数组中的数呈现递增趋势,因此可以使⽤⼆分来查找插⼊位置

代码

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值