Differential

2024-01-04 18:12
文章标签 differential

本文主要是介绍Differential,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

之前我有一篇 《差分+前缀和》的学习笔记,记录了差分的思想和基本用法。这里就只记录灵神题单的刷题记录。

1. LC 1094 拼车

我记得这是哪次每日一题来着,入门差分前缀和了。

差分数组维护每站新增的乘客(当然数量可以是≤0的),每一项在上车对应位置加。下车对应位置减即可。

class Solution {public boolean carPooling(int[][] trips, int capacity) {int[] diff = new int[1001];for (int[] trip : trips) {diff[trip[1]] += trip[0];diff[trip[2]] -= trip[0];}for (int i : diff) {capacity -= i;if(capacity<0){return false;}}return true;}
}

2. LC 1109 航班预订统计

同样入门题。差分数组维护每站新增座位。对于每个预订项,first(i)增加对应量,而last(i)之后就不再预订这些位置,所以要减掉。

class Solution {public int[] corpFlightBookings(int[][] bookings, int n) {int[] ans = new int[n];// 我有一计O(n)的差分前缀和,可做此题for (int[] booking : bookings) {ans[booking[0]-1] += booking[2];if(booking[1]<n){ans[booking[1]] -= booking[2];}}// 原地更新for (int i = 1; i < ans.length; i++) {ans[i] += ans[i-1];}return ans;}
}

3. LC 2381 字母移位Ⅱ

也是入门题。差分数组维护每个位置的移位偏移量,前缀和还原。

修改字符的时候,可以利用向左移动1等于向右移动25的技巧来规避掉对于负数的分类讨论。

import java.util.Arrays;class Solution {public String shiftingLetters(String s, int[][] shifts) {int[] diff = new int[s.length()];int dir ;for (int[] shift : shifts) {dir = shift[2]==1?1:-1;diff[shift[0]] += dir;if(shift[1]<s.length()-1){diff[shift[1]+1] -= dir;}}// 原地还原for (int i = 1; i < diff.length; i++) {diff[i] += diff[i-1];}char[] ch = s.toCharArray();for (int i = 0; i < ch.length; i++) {int offset = (ch[i] - 'a' + diff[i]) % 26;if(offset<0){ch[i] = (char) ('a'+26+offset);}else{ch[i] = (char) ('a'+offset);}}return String.valueOf(ch);}
}
class Solution {public String shiftingLetters(String s, int[][] shifts) {char[] chars = s.toCharArray();int n = chars.length;int[] diff = new int[n + 1];for(int[] shift : shifts){int dir = shift[2] == 1 ? 1 : 25;diff[shift[0]] += dir;diff[shift[1] + 1] -= dir;}int t = 0;for(int i = 0; i < n; i++){t += diff[i];chars[i] = (char)('a' + (chars[i] + t - 'a') % 26);}return new String(chars);}
}

这篇关于Differential的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/570162

相关文章

Python中差分进化differential_evolution的调用及参数说明

在场景应用中,要求我们的函数计算结果尽可能的逼近实际测量结果,可转化计算结果与测量结果的残差,通过最小化残差,便可求出最优的结果。但使用最小二乘等方法来计算时,常常会使迭代的结果显然局部最优点而导致结算错误。 差分进化原理 差分进化(Differential Evolution,DE)是一种基于群体差异的进化算法,其计算思想主要包括以下几个方面: 一、初始化种群 首先,随机生成一个初始种群

Differential Diffusion,赋予每个像素它应有的力量,以及在comfyui中的测试效果

🥽原论文要点 首先是原论文地址:https://differential-diffusion.github.io/paper.pdf 其次是git介绍地址:GitHub - exx8/differential-diffusion 感兴趣的朋友们可以自行阅读。 首先,论文开篇就给了一个例子: 我们的方法根据给定的图片和文本提示,以不同的程度改变图像的不同区域。这种可控性允许我们再现

MACS bdgdiff: Differential peak detection based on paired four bedGraph files.

参考原文地址:[http://manpages.ubuntu.com/manpages/xenial/man1/macs2_bdgdiff.1.html](http://manpages.ubuntu.com/manpages/xenial/man1/macs2_bdgdiff.1.html) 文章目录 一、MACS bdgdiff 简介DESCRIPTION 二、用法

微分方程(Blanchard Differential Equations 4th)中文版Section6.3

二阶线性方程 Laplace 变换求解 在这一节中,我们将拉普拉斯变换方法扩展到二阶常系数强迫线性方程,即具有以下形式的方程: d 2 y d t 2 + p d y d t + q y = f ( t ) , \frac{d^2 y}{dt^2} + p \frac{dy}{dt} + qy = f(t), dt2d2y​+pdtdy​+qy=f(t), 其中 p p p 和 q q

微分方程(Blanchard Differential Equations 4th)中文版Section5.1

平衡点分析 从第3章的工作中,我们能够对线性系统的解有定性和解析的理解。不幸的是,非线性系统通常不容易使用我们开发的解析和代数技术来分析,但我们可以利用线性系统的数学来理解非线性系统在其平衡点附近的行为。 Van der Pol 方程 为了说明如何分析平衡点附近解的行为,我们从一个简单但重要的非线性系统——Van der Pol 系统开始。回顾一下,Van der Pol 系统是: d x

微分方程(Blanchard Differential Equations 4th)中文版Section4.4

稳态的振幅和相位系统 在本节中,我们回到方程 d 2 y d t 2 + p d y d t + q y = cos ⁡ ω t \frac{d^2 y}{dt^2} + p \frac{dy}{dt} + qy = \cos \omega t dt2d2y​+pdtdy​+qy=cosωt 用于周期性强迫的阻尼谐振子。我们的目标是建立解决方案行为与参数之间的定量关系——特别是决定强迫频率

微分方程(Blanchard Differential Equations 4th)中文版Section3.5

特殊情况: 重根和零特征值的线性系统 在前面的三节中,我们讨论了线性系统 d Y d t = A Y \frac{dY}{dt} = AY dtdY​=AY 其中 2 × 2 2 \times 2 2×2 矩阵 A A A 具有两个不同的非零实特征值或一对复共轭特征值。在这些情况下,我们能够使用特征值和特征向量来草绘 x y xy xy 相平面的解,绘制 x ( t ) x(t)

微分方程(Blanchard Differential Equations 4th)中文版Section2.3

阻尼谐振子 在本节中,我们将描述一种解析技术,它适用于本书中最重要的模型之一——阻尼谐振子。这一二阶微分方程用于建模各种现象,如质量-弹簧系统、电路理论中的RLC电路,以及人体的血糖调节系统。 例如,考虑汽车的悬挂系统。它可以平滑崎岖道路上的颠簸,并帮助保持轮胎与地面的接触。我们主要关注悬挂中的弹簧和减震器(见图2.34和2.35)。弹簧吸收由路面颠簸引起的力,并保持轮胎与道路接触。减震器由一

DPTree: Differential Indexing for Persistent Memory(VLDB 2019)

(一)研究目的 实现崩溃一致性,减少 PM 写入,并保持优秀的读性能。 (二)研究背景 根据结构特性,现有的 PM 索引研究大致可以分为B+Tree based、Trie-based 和 hybrid(混合) 三种类型。B+Tree based 结构(例如 CDDS-Tree、wB+Tree、NVTree、FPTree、FASTFAIR)在索引更新的关键代码路径上的持久化原语的数量是次优的。

免费:差分进化算法(Differential Evolution, DE)原理及其Matlab代码,详细中文版!

差分进化算法(Differential Evolution, DE)原理及其Matlab代码,详细版!!! 差分进化算法是一种有效且简单的全局优化算法,适用于解决连续优化问题。由Storn和Price于1997年提出,以其简单的结构、易于实现的特性、少量的参数需求,以及对初始值选择的低敏感性而受到广泛应用。 一、差分进化算法主要通过以下四个步骤进行: 1)种群初始化 在算法开始时随机生成一