题目:
数组a[0..n-1],找出i和j使得a[j] - a[i]的值最大。
注意j > i。
要求是时间复杂度O(n),空间复杂度O(1)。
思路:
样例数组 11,1,5,8,11,2,3,2,11,5,3
1.先从后到前依次求出相邻2个数的差值,得到 {-2,-6,9,-1,1,-9,3,3,4,-10}
2.问题转化为求差值数组最大和序列,从前至后遍历该数组,保留所有的序列和为正数的和,得到{9,8,9,3,6,10},求最大值为 10
代码:
static int maxIj(int[] arr){
for(int i=arr.length-1; i > 0;i--){
arr[i] = arr[i] - arr[i-1];
}
arr[0] = 0 ;
int n = 0;
for(int i=1; i<arr.length;i++) {
n = n + arr[i];
if(n > 0 && n > arr[0]) {
arr[0] = n;
} else {
n = 0;
}
}
int maxIj = arr[0];
System.out.println(CollectorUtil.toString(arr));
return maxIj;
}
public static void main(String[] args) {
int[] arr = new int[]{11,3,5,8,11,2,3,2,11,5,3};
int max = maxIj(arr);
System.out.println(max);
System.out.println("---------------");
}
分享到:
相关推荐
- **`maxij()`**:此函数用于找到矩阵中最大值的位置,并将其交换到适当的位置。 - **`zeros()`**:用于执行高斯消元,通过将矩阵下方的元素置零来简化求解过程。 - **`solution()`**:根据简化后的矩阵,反向代入...
* 接收用户输入 n,m,Maxij ,Allocationij * 按照银行家算法判断当前状态安全与否,安全给出安全序列,不安全给出提示 * 如果安全,提示用户输入下一时刻进程 Pk 的资源请求Request(R1, … ,Rm) * 如果不安全或者...
- 接收用户输入n、m、Maxij 和 Allocationij。 - 使用银行家算法判断当前系统状态是否安全。 - 如果安全,输出安全序列。 - 如果不安全,给出提示。 - 若系统安全,提示用户输入下一时刻进程Pk的资源请求Request...
太赫兹金属回形结构:电磁波调控与信号传输的关键技术,太赫兹金属回形结构。 ,太赫兹; 金属; 回形结构; 电磁波响应,太赫兹金属回形结构:高效电磁波调控技术
路翼DCS460电脑调音软件下载是专为汽车音响爱好者和专业人士设计的一款强大工具, 这款软件的主要功能在于帮助用户对车载音频系统进行精确的数字信号处理,以提升音乐播放效果,提供更丰富的听觉体验。
基于Matlab的轴承故障分类系统:小波包能量特征提取与深度置信网络(DBN)的分类模型研究与应用,基于小波包能量特征提取和深度置信网络(DBN)的轴承故障分类 开发语言matlab 程序内容包括 1.轴承故障数据一份,共10类 2.数据读取,训练集,测试集数据划分。 3.小波包特征能量特征提取程序一份 4.基于DBN故障分类模型一份 ,小波包能量特征提取;DBN故障分类模型;Matlab;轴承故障数据;数据划分,基于MATLAB的轴承故障分类:小波包能量特征提取与深度置信网络分类模型
matlab实现PSO-BP分类完整程序+数据
基于AHP-CRITIC组合变权与指标劣化度修正的赋权方法研究,38考虑劣化度APH-CRITIC组合变权 组合变权赋权方法,基于AHP和改进CRITIC计算主客观权重,引入指标劣化度构造变权函数对综合权重进行修正,还方法可以捕捉指标时序的劣化程度,实现数据的有效跟踪,评价更加合理。 可根据需求进行改进。 ,关键词:组合变权赋权方法;AHP;CRITIC;指标劣化度;变权函数;时序劣化程度;数据跟踪;评价合理。,基于AHP-CRITIC组合变权法:综合主客观权重与指标劣化度评价
ROS机械臂仿真与视觉抓取技术:Darknet_ROS配置及Matlab运动学轨迹规划研究,ros机械臂仿真代做,视觉抓取,darknet_ros配置 Matlab机械臂运动学,轨迹规划 ,ROS机械臂仿真; 视觉抓取; darknet_ros配置; Matlab机械臂运动学; 轨迹规划,ROS机械臂仿真与视觉抓取:Darknet_ROS配置及Matlab运动学轨迹规划
农村事务管理与交流平台 免费JAVA毕业设计 2024成品源码+论文+录屏+启动教程 启动教程:https://www.bilibili.com/video/BV1jKDjYrEz1 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
"基于Rsoft的光纤拉锥与弯曲模型仿真研究:探究beamprop模块的应用",光纤弯曲、拉锥弯曲模型仿真 Rsoft光学仿真,beamprop模块 ,光纤弯曲; 拉锥弯曲模型仿真; Rsoft光学仿真; beamprop模块,Rsoft仿真:光纤拉锥与弯曲的光束传播模型研究
亚像素提取的精确利器:Bresenham算法与卡尺算法的融合应用,bresenham算法,用于亚像素提取,卡尺算法 ,Bresenham算法; 亚像素提取; 卡尺算法,"Bresenham算法:亚像素提取的精准工具"
基于Vivado HLS的CLAHE算法FPGA实现:高效率视频处理IP核工程,限制对比度的自适应直方图均衡算法(CLAHE)的FPGA实现。 可实时处理视频流。 算法具体内容不做过多介绍,网上都有。 使用vivado hls实现,生成的IP核的输入输出接口都为axi-stream。 已经上板跑通(zynq7020)。 摄像头分辨率400*400-30fps,可以轻松的做到实时处理。 (如果您不清楚我的源码是否能应用到您的项目中,可以发我硬件平台和要处理视频流的分辨率与帧率,帮你评估。 )此hls源码工程。 ,关键词: 1. 限制对比度的自适应直方图均衡算法(CLAHE) 2. FPGA实现 3. 实时处理视频流 4. Vivado HLS 5. AXI-Stream接口 6. Zynq7020平台 7. 摄像头分辨率与帧率 8. HLS源码工程,基于Vivado HLS的CLAHE算法FPGA实现:实时视频流处理工程
games101-作业3
"基于Halcon的C#可视化工具:轻松抓边抓圆,Halcon控件上绘制更简单",使用C#新研发的基于Halcon的可视化抓边、抓圆工具,在Halcon控件上绘制的,使用起来简单 ,使用C#研发;Halcon可视化抓边工具;Halcon抓圆工具;在Halcon控件上绘制;简单易用;快速使用;直接绘制,"C#研发的Halcon可视化工具:抓边抓圆,简单易用"
基于微信小程序的校园食堂订餐服务系统 免费JAVA毕业设计 2024成品源码+论文+录屏+启动教程 启动教程:https://www.bilibili.com/video/BV1jKDjYrEz1 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
"COMSOL PDE中设置Floquet周期性边界条件的步骤与注意事项",comsol pde设置floqeut周期性边界条件 ,comsol; pde设置; floqeut; 周期性边界条件,COMSOL PDE设置周期性边界条件
计算机网络第八版课件资料
基于FLAC3D的复杂地质环境下的双线隧道与基坑协同开挖策略:分步开挖,多层防护处理,flac3d 双线隧道开挖和基坑开挖。 临近既有隧道基坑开挖。 首先进行隧道开挖,考虑应力释放,使用反力支撑法,使用shell壳单元支护。 然后进行基坑开挖,使用地连墙和对撑支护。 分三层开挖。 ,flac3d;双线隧道开挖;基坑开挖;应力释放;反力支撑法;shell壳单元支护;分三层开挖;地连墙;对撑支护。,FLAC3D:隧道基坑双线开挖与支护技术
4b076399e3f709dc8990bd0e12720254.part6