力扣10.6

134. 加油站

在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。

你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。

给定两个整数数组 gascost ,如果你可以按顺序绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1 。如果存在解,则 保证 它是 唯一 的。

数据范围

  • gas.length == n
  • cost.length == n
  • 1 <= n <= 105
  • 0 <= gas[i], cost[i] <= 104

分析

前缀和+双指针,只要满足大小为n的区间内,所有的加油站都能正常通过,预处理油和花费的前缀和,只需要保证每个点处油的前缀和比花费前缀和大就行,若有一个点不存在,则左指针到达他下一个加油站的位置。

代码

class Solution {
public:const static int N = 2e5 + 5;int pgas[N], pcost[N];int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {int res = -1;int n = gas.size();for(int i = 1; i <= 2 * n; i ++ ) {if(i <= n) pgas[i] = pgas[i - 1] + gas[i - 1];else pgas[i] = pgas[i - 1] + gas[(i - 1) % n];if(i <= n) pcost[i] = pcost[i - 1] + cost[i - 1];else pcost[i] = pcost[i - 1] + cost[(i - 1) % n];}for(int i = n; i <= 2 * n; i ++ ) {int j = i - n + 1;int last = j;while(j <= i) {cout << i << " " << j << endl; int tcost = pcost[j] - pcost[last - 1];int tgas = pgas[j] - pgas[last - 1];if(tcost > tgas) break;else j ++ ;}if(j == i + 1) {res = i - n;return res;} i = j + n - 1;}return res;}
};

2435. 矩阵中和能被 K 整除的路径

给你一个下标从 0 开始的 m x n 整数矩阵 grid 和一个整数 k 。你从起点 (0, 0) 出发,每一步只能往 下 或者往 右 ,你想要到达终点 (m - 1, n - 1)

请你返回路径和能被 k 整除的路径数目,由于答案可能很大,返回答案对 109 + 7 取余 的结果。

数据范围

  • m == grid.length
  • n == grid[i].length
  • 1 <= m, n <= 5 * 104
  • 1 <= m * n <= 5 * 104
  • 0 <= grid[i][j] <= 100
  • 1 <= k <= 50

分析

d p [ i ] [ j ] [ k ] dp[i][j][k] dp[i][j][k]表示到达 ( i , j ) (i,j) (i,j)后前缀和模 k k k后的路径数量,状态转移如下

  • d p [ i ] [ j ] [ k ] + = d p [ i − 1 ] [ j ] [ ( k − g r i d [ i ] [ j ] ) % k k ] + d p [ i ] [ j − 1 ] [ ( k − g r i d [ i ] [ j ] ) % k k ] dp[i][j][k]+=dp[i-1][j][(k-grid[i][j])\%kk]+dp[i][j-1][(k-grid[i][j])\%kk] dp[i][j][k]+=dp[i1][j][(kgrid[i][j])%kk]+dp[i][j1][(kgrid[i][j])%kk]

代码

class Solution {
public:const static int N = 55, mod = 1e9 + 7, M = 5e2 + 5;int n, m;int numberOfPaths(vector<vector<int>>& grid, int kk) {n = grid.size();m = grid[0].size();int dp[n + 2][m + 2][N];memset(dp, 0, sizeof(dp));dp[1][1][grid[0][0] % kk] = 1;for(int i = 1; i <= n; i ++ ) {for(int j = 1; j <= m; j ++ ) {for(int k = 0; k < kk; k ++ ) {int l = grid[i - 1][j - 1];if(j >= 2) dp[i][j][k] += dp[i][j - 1][((k - l % kk) % kk + kk) % kk];if(i >= 2) dp[i][j][k] += dp[i - 1][j][((k - l % kk) % kk + kk) % kk];dp[i][j][k] %= mod;}}}return dp[n][m][0];}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1555979.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

力扣110:判断二叉树是否为平衡二叉树

利用二叉树遍历的思想编写一个判断二叉树&#xff0c;是否为平衡二叉树 示例 &#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;true思想&#xff1a; 代码&#xff1a; int getDepth(struct TreeNode* node) {//如果结点不存在&#xff0c;返回…

打造自己的RAG解析大模型:Windows部署OCR服务(可商业应用)

在上一篇文章中&#xff0c;我们介绍了如何在 Windows 环境中配置 OCR 相关模型&#xff0c;并完成了模型验证。本篇文章将基于之前的内容&#xff0c;进一步讲解如何将文本检测、方向分类和文本识别模型进行串联&#xff0c;最终搭建一个基础的 OCR 应用服务。通过这些模型的串…

【Diffusion分割】CTS:基于一致性的医学图像分割模型

CTS: A Consistency-Based Medical Image Segmentation Model 摘要&#xff1a; 在医学图像分割任务中&#xff0c;扩散模型已显示出巨大的潜力。然而&#xff0c;主流的扩散模型存在采样次数多、预测结果慢等缺点。最近&#xff0c;作为独立生成网络的一致性模型解决了这一问…

回调函数是什么

回调函数是什么 回调函数就是⼀个通过函数指针调⽤的函数。 如果你把函数的指针&#xff08;地址&#xff09;作为参数传递给另⼀个函数&#xff0c;当这个指针被⽤来调⽤其所指向的函数时&#xff0c;被调⽤的函数就是回调函数。 回调函数不是由该函数的实现⽅直接调⽤&…

Linux驱动开发(速记版)--GPIO子系统

第105章 GPIO 入门 105.1 GPIO 引脚分布 RK3568 有 5 组 GPIO&#xff1a;GPIO0 到 GPIO4。 每组 GPIO 又以 A0 到 A7&#xff0c;B0 到 B7&#xff0c;C0 到C7&#xff0c;D0 到 D7&#xff0c;作为区分的编号。 所以 RK3568 上的 GPIO 是不是应该有 5*4*8160 个呢&#xff1…

Semantic Communication Meets Edge Intelligence——构造终端共享的知识图谱指导无线物联网通信中文本的传输

论文链接&#xff1a; IEEE Xplore Full-Text PDF:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp&arnumber9979702 1. 背景 随着自动驾驶、智能城市等应用的发展&#xff0c;移动数据流量将大幅增加。传统的香农信息论&#xff08;CIT&#xff09;通信系统已接近其带…

SpringBoot MyBatis连接数据库设置了encoding=utf-8还是不能用中文来查询

properties的MySQL连接时已经指定了字符编码格式&#xff1a; url: jdbc:mysql://localhost:3306/sky_take_out?useUnicodetrue&characterEncodingutf-8使用MyBatis查询&#xff0c;带有中文参数&#xff0c;查询出的内容为空。 执行的语句为&#xff1a; <select id&…

decltype推导规则

decltype推导规则 当用decltype(e)来获取类型时&#xff0c;编译器将依序判断以下四规则&#xff1a; 1.如果e是一个没有带括号的标记符表达式(id-expression)或者类成员访问表达式&#xff0c;那么decltype(e)就是e所命名的实体的类型。此外&#xff0c;如果e是一个被重载的函…

k8s 中存储之 NFS 卷

目录 1 NFS 卷的介绍 2 NFS 卷的实践操作 2.1 部署一台 NFS 共享主机 2.2 在所有k8s节点中安装nfs-utils 2.3 部署nfs卷 2.3.1 生成 pod 清单文件 2.3.2 修改 pod 清单文件增加 实现 NFS卷 挂载的 参数 2.3.3 声明签单文件并查看是否创建成功 2.3.4 在 NFS 服务器 创建默认发布…

思维导图工具,轻松搞定复杂问题!

一提到思维导图&#xff0c;想必大家都不会陌生&#xff1b;它能帮助我们更好地梳理思路&#xff0c;让复杂的想法变得清晰可见&#xff1b;而随着互联网的普及&#xff0c;在线思维导图工具更是成为了我们日常工作和学习的得力助手&#xff1b;今天&#xff0c;我就来给大家推…

小红书算法岗面试,竞争太激烈了

最近已有不少大厂都在秋招宣讲了&#xff0c;也有一些在 Offer 发放阶段。 节前&#xff0c;我们邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对新手如何入门算法岗、该如何准备面试攻略、面试常考点、大模型技术趋势、算法项目落地经验分享等热门话题进行了…

【Kubernetes】常见面试题汇总(五十八)

目录 127.创建 PV 失败&#xff1f; 128. pod 无法挂载 PVC&#xff1f; 特别说明&#xff1a; 题目 1-68 属于【Kubernetes】的常规概念题&#xff0c;即 “ 汇总&#xff08;一&#xff09;~&#xff08;二十二&#xff09;” 。 题目 69-113 属于【Kubernetes】…

一个月学会Java 第4天 运算符和数据转换

Day4 运算符和数据转换 今天来讲运算符&#xff0c;每个运算符的作用和现象&#xff0c;首先我们先复习一下数据类型&#xff0c; day2讲过基本数据类型有八种&#xff0c;int、short、long、byte、char、boolean、float、double&#xff0c;分别为四个整型、一个字符型、一个布…

基于springboot vue3 在线考试系统设计与实现 源码数据库 文档

博主介绍&#xff1a;专注于Java&#xff08;springboot ssm springcloud等开发框架&#xff09; vue .net php phython node.js uniapp小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设&#xff0c;从业十五余年开发设计教学工作☆☆☆ 精彩专栏推荐订阅☆☆☆☆…

电脑断网或者经常断网怎么办?

1、首先&#xff0c;按一下键盘的win R &#xff0c; 在打开的运行框内输入&#xff1a;cmd 然后按一下回车 或者 点击一下【确定】 2、在命令窗口输入&#xff1a;ipconfig/release , 然后按一下回车 作用&#xff1a;IP释放&#xff0c;相当于把网线拔了重新插上 3、接着…

佳能基于SPAD的监控摄像机MS-500入选《时代》2023最佳发明

一、产品概述 佳能MS-500是一款采用SPAD(Single Photon Avalanche Diode,单光子雪崩二极管)传感器的监控摄像机。SPAD传感器以其极高的灵敏度和在低光环境下的卓越表现而闻名,使得MS-500能够在夜晚或极暗光条件下拍摄到清晰、彩色的画面。此外,MS-500还配置了高性能的镜头…

Python异常处理中的9个常见错误及其解决办法,建议收藏

在Python编程中&#xff0c;异常处理是确保程序健壮性和可靠性的重要部分。然而&#xff0c;在使用异常处理时&#xff0c;开发者可能会犯一些常见的错误。以下是9个常见的异常处理错误及其解决办法&#xff1a; 1. 语法错误 (SyntaxError) 语法错误是最常见的错误之一。它通…

【梯级水电站调度优化】基于线性递减策略优化粒子群算法

课题名称&#xff1a; 基于改进粒子群算法的梯级水电站调度优化 改进方向&#xff1a; 线性递减策略优化粒子群PSO 代码获取方式&#xff08;付费&#xff09;&#xff1a; 相关资料&#xff1a; 1. 粒子群算法的基本原理 2. 梯级水电站调度优化模型 3. 代码注释 4. 代码…

第十一章 缓存之更新/穿透/雪崩/击穿

目录 一、什么是缓存 二、缓存更新策略 2.1. 缓存主动更新策略 2.1.1. Cache Aside模式&#xff08;主流&#xff09;‌ 2.1.2. Read/Write Through模式‌ 2.1‌.3. Write Behind模式‌ 2.1.4. 总结 三、缓存穿透 四、缓存雪崩 五、缓存击穿 本文中的图片内容部分来源…

【笔记】神领物流Day1.1.20权限管家

传智权限管家是一个通用的权限管理中台服务&#xff0c;在神领物流项目中&#xff0c;我们使用权限系统管理企业内部员工&#xff0c;比如&#xff1a;快递员、司机、管理员等。 在权限管家中可以管理用户&#xff0c;管理后台系统的菜单&#xff0c;以及角色的管理。 权限管家…