Java实现的计算最大下标距离算法示例
作者:Yaphat 发布时间:2022-02-09 19:14:37
标签:Java,计算,算法
本文实例讲述了Java实现的计算最大下标距离算法。分享给大家供大家参考,具体如下:
题目描述
给定一个整形数组,找出最大下标距离j−i, 当且A[i] < A[j] 和 i < j
解法
复杂度:三次扫描,每次的复杂度O(N)
算法:{5,3,4,0,1,4,1}
找出从第一个元素开始的下降序列{5,3,0}
i=3,j=6, j从尾部扫描
初始化,i=3, j=6, A[i]=0
实现代码
public static int maxindexdistance(int A[]) {
boolean[] isDes = new boolean[A.length];
int min = A[0];
isDes[0] = true;
for (int i = 0; i < A.length; i++) {
if (A[i] < min) {
isDes[i] = true;
min = A[i];
}
}
int maxdis = 0;
int i = A.length - 1;
int j = A.length - 1;
System.out.println(Arrays.toString(isDes));
while (i >= 0) {
while (isDes[i] == false) {
i--;
}
while (j > i && A[j] <= A[i]) {
j--;
}
if ((j - i) > maxdis) {
maxdis = j - i;
}
i--;
}
return maxdis;
}
希望本文所述对大家java程序设计有所帮助。
来源:http://blog.csdn.net/yaphat/article/details/77773766
0
投稿
猜你喜欢
- 第一步:后端简单建个SpringBoot项目,提供一个 helloWorld接口;版本选用 2.2.6.RELEASEpackage com
- 自定义工具类PropertyUtil,并在该类的static静态代码块中读取properties文件内容保存在static属性中以供别的程序
- servlet实现文件上传,预览,下载和删除,供大家参考,具体内容如下一、准备工作:1.1 文件上传插件:uploadify;1.2 文件上
- 最近有个项目的几张表,数量级在千万以上,技术栈是SpringBoot+Mybatis-plus+MySQL。如果使用单表,在进行查询操作,非
- 接着上一篇再为大家介绍java应用和输入输出常用方法,供大家参考,具体内容如下一、应用1、使用StringBuilder或StringBuf
- 这篇文章主要介绍了JAVA基于SnakeYAML实现解析与序列化YAML,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考
- 1、注解@PathVariable:将请求url中的占位符参数与控制器方法入参绑定起来(Rest风格请求)@RequestHeader:获取
- 前言smart-doc 是一款同时支持 java restful api 和 Apache Dubbo rpc 接口文档生成的工具,smar
- Note:这篇文章是基于Android Studio 3.01版本的,NDK是R16。step1:创建一个包含C++的项目其他默认就可以了。
- 一、文件的编码package com.study.io;/*** 测试文件编码*/public class EncodeDemo {/***
- 话不多说,请看实例代码String ip = request.getHeader("x-forwarded-for");
- 1 关于自动内存管理Java是由jvm来管理内存,包括自动分配以及自动回收,因此它不容易出现内存泄漏和内存溢出问题。C/C++,由程序员手动
- Navigator 的 push 和 pop方法Navigator 导航器的 push 和 pop 方法可以携带参数在页面间传递,其他变形的
- 我们知道,进入百度图片后,输入一个关键字后,首先看到的是很多缩略图,当我们点击某张缩略图时,我们就可以进入到大图显示页面,在大图显示页面,中
- 多数据源创建数据库CREATE DATABASE mybatis_plus_1;USE mybatis_plus_1;CREATE TABL
- 简介AccessibilityService的设计初衷是为了辅助有身体缺陷的群体使用Android应用,它的设计贯穿着Android的控件树
- flutter material widget组件之信息展示组件,供大家参考,具体内容如下widget分为两类:widgets librar
- 案例sql脚本DROP DATABASE IF EXISTS `javacode2018`;CREATE DATABASE `javacod
- 本文实例为大家分享了java实现银行ATM管理系统的具体代码,供大家参考,具体内容如下功能账户类、首页设计分析① 每个用户一个账户对象,需要
- 1. 插入排序步骤:1.从第一个元素开始,该元素可以认为已经被排序2.取下一个元素tem,从已排序的元素序列从后往前扫描3.如果该元素大于t