题目:
数组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...
onnxruntime-1.16.0-cp311-cp311-win_amd64.whl
基于springboot的流浪猫狗救助系统源码数据库文档.zip
摘 要 如今的信息时代,对信息的共享性,信息的流通性有着较高要求,因此传统管理方式就不适合。为了让美容院信息的管理模式进行升级,也为了更好的维护美容院信息,美容院管理系统的开发运用就显得很有必要。并且通过开发美容院管理系统,不仅可以让所学的SpringBoot框架得到实际运用,也可以掌握MySQL的使用方法,对自身编程能力也有一个检验和提升的过程。尤其是通过实践,可以对系统的开发流程加深印象,无论是前期的分析与设计,还是后期的编码测试等环节,都可以有一个深刻的了解。 美容院管理系统根据调研,确定其实现的功能主要包括美容用品管理,美容项目管理,美容部位管理,销量信息管理,订单管理,美容项目预约信息管理等功能。 借助于美容院管理系统这样的工具,让信息系统化,流程化,规范化是最终的发展结果,让其遵循实际操作流程的情况下,对美容院信息实施规范化处理,让美容院信息通过电子的方式进行保存,无论是管理人员检索美容院信息,维护美容院信息都可以便利化操作,真正缩短信息处理时间,节省人力和信息管理的成本。 关键字:美容院管理系统,SpringBoot框架,MySQL
numpy-1.21.1-cp39-cp39-linux_armv7l.whl
基于JavaWeb+springboot的宠物救助及领养平台源码数据库文档.zip
基于springboot员工在线餐饮管理系统源码数据库文档.zip
matplotlib-3.5.3-cp37-cp37m-linux_armv7l.whl
基于springboot+web的留守儿童网站源码数据库文档.zip
STM32神舟III号例程源码SysTick系统滴答(神舟III号-库函数版)提取方式是百度网盘分享地址
STM32开发相关软件ISP 程序下载STM32开发相关软件ISP 程序下载提取方式是百度网盘分享地址
onnxruntime-1.17.0-cp310-cp310-win_amd64.whl
Pillow-9.5.0-cp39-cp39-linux_armv7l.whl
基于springboot高性能计算中心的高性能集群共享平台源码数据库文档.zip
SciPy-1.11.1-cp311-cp311-linux_armv7l.whl
主机硬件信息邮件及微信推送
numpy-1.23.4-cp39-cp39-linux_armv7l.whl
基于springboot视频点播系统源码数据库文档.zip