当前位置: 首页 > news >正文

动漫设计好学吗宁波企业网站seo

动漫设计好学吗,宁波企业网站seo,人力资源和社会保障局,旅行社手机网站建设文章目录 Tag题目来源解题思路方法一:差分 写在最后 Tag 【差分数组】【数组】【2023-12-02】 题目来源 1094. 拼车 解题思路 本题朴素的解题思路是统计题目中提到的每一个站点的车上人数,如果某个站点的车上人数大于车上的座位数直接返回 false&…

文章目录

  • Tag
  • 题目来源
  • 解题思路
    • 方法一:差分
  • 写在最后

Tag

【差分数组】【数组】【2023-12-02】


题目来源

1094. 拼车


解题思路

本题朴素的解题思路是统计题目中提到的每一个站点的车上人数,如果某个站点的车上人数大于车上的座位数直接返回 false,如果直到行程结束都没有返回 false,则直接返回 true。朴素方法的时间复杂度为 O ( n 2 ) O(n^2) O(n2) n n n 最大为 1000,该方法时间复杂度较高但是可以通过本题。

接下来将会介绍一种时间复杂度较优的方法,时间复杂度为 O ( n + U ) O(n + U) O(n+U)

方法一:差分

我们先来看一下,朴素方法的实现代码:

class Solution {
public:bool carPooling(vector<vector<int>>& trips, int capacity) {vector<int> peoples(10010);for (auto trip : trips) {for (int i = trip[1]; i < trip[2]; ++i) {peoples[i] += trip[0];if (peoples[i] > capacity) {return false;}}}return true;}
};

注意观察朴素解法中对于数组 peoples 的更新,我们枚举并更新所有站点的车上人数,朴素方法的时间复杂度较高的原因就是此处的嵌套枚举更新人数。此处可以使用【差分数组】来优化时间复杂度。

什么是差分数组?

差分数组是一个与原数组长度相同的数组,其中,除了首元素,其余的每个元素都是原数组中相邻两个元素的差值。比如数组 arr = [1, 4, 5, 6] 的差分数组 diff = [1, 3, 1, 1],数组 arr[i] = diff[0, ..., i],即原数组 arr 中的第 i 个元素等于差分数组 diff0 到第 i 个元素之和。

时间是如何优化的?

对于某一段旅行有 numPassengers 乘客,乘客上车点为 from,下车点为 to,这一段旅程的我们只需要更新差分数数组的两个位置对应的值,即更新乘客上车点 diff[from] += numPaaengers, 更新乘客下车点 diff[to] -= numPaaengers。此时的时间复杂度为 O ( 2 × n ) = O ( n ) O(2 \times n) = O(n) O(2×n)=O(n) n n n 为数组 trips 的长度。

然后,利用差分数组累加得到每个站点的车上人数,并与 capacity 比较,… 此处的时间复杂度为 O ( U ) O(U) O(U) U = m a x ( t o i ) U = max(to_i) U=max(toi)

我们借助差分数组将嵌套枚举转化为了两个线性枚举,大大降低了时间复杂度。

实现代码

class Solution {
public:bool carPooling(vector<vector<int>>& trips, int capacity) {int d[1001];memset(d, 0, sizeof(d));for (auto trip : trips) {int num = trip[0], from = trip[1], to = trip[2];d[from] += num;d[to] -= num;}int s = 0;for (int v : d) {s += v;if (s > capacity) {return false;}}return true;}
};

复杂度分析

时间复杂度: O ( n + U ) O(n + U) O(n+U) n n n 为数组 trips 的长度, U = m a x ( t o i ) U = max(to_i) U=max(toi)

空间复杂度: O ( U ) O(U) O(U)


写在最后

如果文章内容有任何错误或者您对文章有任何疑问,欢迎私信博主或者在评论区指出 💬💬💬。

如果大家有更优的时间、空间复杂度方法,欢迎评论区交流。

最后,感谢您的阅读,如果感到有所收获的话可以给博主点一个 👍 哦。

http://www.ritt.cn/news/14453.html

相关文章:

  • 模仿网站 素材哪里来怎样注册网站
  • 网页开发者工具seo和sem是什么意思啊
  • gta5买房网站建设中揭阳百度seo公司
  • 南昌网站建设哪家好薇如何让百度搜索排名靠前
  • 微信网站开发服务青岛关键词优化平台
  • 做外贸如何建立网站商品关键词优化的方法
  • 昆明网站托管企业企业网站seo推广
  • php 网站做分享功能西安竞价托管
  • 美容医疗 网站建设百度快速排名优化服务
  • 做设计网站的工作怎么样网页分析工具
  • 网站建设账单记账日推广吧
  • 外贸cms建站信息流广告投放流程
  • web网站开发实例下载佛山seo培训
  • 做家政建网站自己网站怎么推广
  • 房子如何上网站做民宿厦门seo关键词
  • 广州网站建设企业福建百度开户
  • 微网站模板建设的选择十大搜索引擎排名
  • 造纸公司网站建设自主建站
  • 北京网站建设公司 北京网站设计 网页设计制作 高端网站建设 分形科技口碑营销的重要性
  • 博物馆门户网站建设目标江东seo做关键词优化
  • 西安双语网站建设关于友情链接说法正确的是
  • 重庆公司做网站seo网站关键词排名提升
  • html5自建网站seo关键词优化费用
  • 如何做一个免费的网站神童预言新冠2023结束
  • 10元建站seo的中文意思是什么
  • 哪些网站可以做代理网站优化外包费用
  • 网站收录代做qq营销软件
  • 抚顺网络推广深圳优化公司样高粱seo
  • 永川区门户网站建设轨迹百度免费安装
  • 网站代运营服务内容有网站优化方案范文