美文网首页
算法-数组的应用

算法-数组的应用

作者: TanzeyTang | 来源:发表于2020-02-15 08:47 被阅读0次

题目二:找出第一个最大的稳定区间:

给定一个数组e.g.[1,1,2,2,3,5,6,6,6,5]和方差X=1,如果前一天的数据和后一天的数据相差在方差范围内,则称第一天和第二天为一个稳定区间【1,1】,找出符合这样规律的最大子区间,如果存在多个长度相等的最大区间,返回第一个。

分析:见注释行。

package zexin;

import java.util.*;

public class Stablecase2 {

int arrayStart = 0;

int arraySize = 0;

int arrayEnd = 0;

int start = 0;

int size = 0;

int currentIndex =0;

    Integer

previous = null;

    ArrayList

arrayMax = newArrayList<>();

//1,1,2,2,3,6,5,5,5,4,4

    public ArrayList<Integer>

findMax(List<Integer> array, int X){

        List list  = array;

for(var i : list){

//case 1 start from the previous == null:

            if(previous == null||Math.abs(previous - i) > X){

//check the arrarySize compared to thesize:

                if(arraySize < size){

arraySize = size;

arrayStart = start;

arrayEnd = arraySize + arrayStart;

                }

//start from the first element:

                start = currentIndex;

//note: the size here is set to 0, whichmeans the first element is not contians in the size,

                size = 0;

            }

else{

size++;

            }

//move to next element in the original array:

            currentIndex ++;

previous = i;

        }

//if the for loop end, and then then compare the sizewith the arraysize:

        if(size > arraySize){

arraySize = size;

arrayStart = start;

arrayEnd = arraySize + arrayStart;

        }

//since we set the initial size for each start to 0, so that the array end actually the real index in the

        // array, so that i should <=arrayend

        for(var i = arrayStart;i<=arrayEnd;i++){

arrayMax.add(array.get(i));

        }

return arrayMax;

    }

}

相关文章

  • 算法-数组的应用

    题目二:找出第一个最大的稳定区间: 给定一个数组e.g.[1,1,2,2,3,5,6,6,6,5]和方差X=1,如...

  • 快速排序及时间复杂度

    改进算法 三向切分 应用于含有大量重复元素的数组,分为大于,等于,小于切分元素的数组

  • 排序算法

    一、排序算法总结 排序算法题目 排序算法快速排序堆排序归并排序 应用最小K个数(TopK问题)215.数组中的第K...

  • 数据结构和算法第二讲 - 数组

    本讲内容: 数组定义数组特点应用场景简单算法题 数组定义 定义:数组(Array)是一种线性表数据结构。它用一组连...

  • [C语言] 部分经典排序算法详解(有图解)

    目录 1.内容概括2.主要算法3.技术的具体应用4.算法实际应用5.总结 0.前言 在上一篇文章《[C语言] 数组...

  • 算法和数据结构3.1数组操作-线性查找

    线性查找是一种在数组中查找数据的算法,即便数据没有按照顺序存储,也可以应用线性查找。 数组详解 线性查找的操作很简...

  • NumPy基础:数组和矢量计算

    大数据分析应用关注的功能点: 1、用于数据整理和清理、子集构造和过滤、转换等快速的矢量化数组运算2、常用的数组算法...

  • 2018-12-12数组(三)

    数组(二) 一、 数组的应用 (一) 冒泡排序 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较...

  • 2018-12-06

    数组(二) 一、 数组的应用 (一) 冒泡排序 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较...

  • 2018-12-06数组(二)

    数组(二) 一、 数组的应用 (一) 冒泡排序 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较...

网友评论

      本文标题:算法-数组的应用

      本文链接:https://www.haomeiwen.com/subject/wvqefhtx.html