正数数组求a[j]-a[i]最大值,j>=i
2018-01-03 21:09
141 查看
一、解决代码
public class Question28 { public static void main(String[] args) { int a[]=new int[]{ 1,2,3,4,3,3,5 }; returnMax(a); } // 求a[j]-a[i]最大值 static void returnMax(int []a){ int max=0; for(int i=0,j=0;j<a.length;j++){ if(a[j]-a[i]>max){ max=a[j]-a[i]; } if(a[j]<a[i]){ i=j; } } System.out.println(max); //4 } }
二、分析
1、a[i]和a[j]都是正数,因此a[j]-a[i] (j>=i)最小值为0,故max初始值为02、j负责循环a数组取得数组中每一个元素, i负责指向小的数。每次循环都会让a[j]-a[i]与max进行比较,若大于max,则赋给max此时的a[j]-a[i]。
Patient man, can get what he wanted
相关文章推荐
- 求子数组的最大和___<3>
- 一个数组a[0...n-1],求a[i]-a[j]的最大值,其中i>j
- 求数组的最大子段和(O(N^3)-->O(N^2)-->O(NlogN)-->O(N))
- 题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个 子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为 O(n)。
- 给定一个整数数组(有正数有负数),找出总和最大的连续数列,并返回总和。
- 输入一个整形数组,数组中有正数也有负数,求该数组中所以子数组和的最大值
- 给定只包含正数的数组,给出一个方法,将数组中的数拼接起来,得到的数,是最大的。
- 数组中的最大递增子序列(Longest Increasing Subsequence<LIS>)
- 10.2 设计一个函数模板 max <T>求一个数组中最大的元素,并以整数数组和字符数 组进行调用
- 在O(N)时间内求解 正数数组中 两个数相加的 最大值
- 输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个 子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。
- @陈利人 : #面试题#给定两个数组X和Y,元素都是正数。请找出满足如下条件的数对的数目: x^y > y^x,即x的y次方>y的x次方;x来自X数组,y来自Y数组
- 一个整形数组中有正数也有负数,数组中连续一个或多个组成子数组,每个子数组都有一个和,求所有子数组中和的最大值
- 程序员面试金典——解题总结: 9.17中等难题 17.8给定一个整数数组(有正数有负数),找出总和最大的连续数列,并返回总和
- 给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大 java实现
- nyoj 119 士兵杀敌(三) <模板RMQ--静态数组时求最大最小值>
- 一个数组 里面正数和负数求所有子数组的最大值
- <跟着结构之法一起学算法>求子数组的最大和
- 求数组(元素可为正数、负数、0)的最大子序列和。
- 求数组(元素可为正数、负数、0)的最大子序列和,