题目1

给一个整数数组nums 需要找出一个连续子数组 如果对这个子数组进行升序排序 那么整个数组都会变成升序排序 请你找出这个最小的连续子数组

// 这个空着不写 看下次能不能想起来

题目2

给很多个有序数组 返回一个长度最小的区间 使得每一个数组中都有一个数字在这个区间中

用一个最小堆维护最小值 最大堆维护最大值

题目3

组团买票 景区里一共有m个项目,景区的第i个项目有如下两个参数: game[i] = { Ki, Bi },Ki、Bi一定是正数 Ki代表折扣系数,Bi代表票价,举个例子 : Ki = 2, Bi = 10 如果只有1个人买票,单张门票的价格为 : Bi - Ki * 1 = 8 所以这1个人游玩该项目要花8元 如果有2个人买票,单张门票的价格为 : Bi - Ki * 2 = 6 所以这2个人游玩该项目要花6 * 2 = 12元 如果有5个人买票,单张门票的价格为 : Bi - Ki * 5 = 0 所以这5个人游玩该项目要花5 * 0 = 0元 如果有更多人买票,都认为花0元(因为让项目倒贴钱实在是太操蛋了) 于是可以认为,如果有x个人买票,单张门票的价格为 : Bi - Ki * x x个人游玩这个项目的总花费是 : max { x * (Bi - Ki * x), 0 } 单位一共有n个人,每个人最多可以选1个项目来游玩,也可以不选任何项目,由你去按照上面的规则,统一花钱购票 你想知道自己需要准备多少钱,就可以应付所有可能的情况,返回这个最保险的钱数 1 <= M、N、Ki、Bi <= 10^5

其实就是要找出景区公园赚最多钱的情况

如何让公园最赚钱? 我们只需要把人 挨个送到最赚钱的项目去 如何统计这个指标? 假设现在来了a人 每个人要付的钱就是 现在又来了一个 每个人要付的钱就变成了

题目4

平均值最小累加和 给定数组v 长度为n 需要从中划分出 k 组 返回每组的平均值累加起来的 最小值

思路: 其实就是把前k - 1 个数单独放一组, 剩下的n - k + 1 个大数字求平均值 然后累加

题目5

执行所有任务的最少初始电量 每一个任务有两个参数,需要耗费的电量 a 、至少多少电量才能开始这个任务 b 返回手机至少需要多少的初始电量,才能执行完所有的任务 现在是m m 需要 >= b 执行完任务之后变成m - a

结论:耗费 - 至少的差值越小 越先进行; 耗费 - 至少的差值越大 越先倒推

题目6

两个0和1数量相等区间的最大长度 给出一个长度为n的01串,现在请你找到两个区间 使得这两个区间中,1的个数相等,0的个数也相等 这两个区间可以相交,但是不可以完全重叠,即两个区间的左右端点不可以完全一样 现在请你找到两个最长的区间,满足以上要求 返回区间最大长度

011010 的两个区间 分别是 01101 11010

  • 可能性1 找到区间最左侧 最右侧 的0
  • 可能性2 找到区间最左侧 最右侧 的1
  • 两者求最大值即可

P4