贪心算法-数列极差问题(对前篇文章的修改)

本文介绍了一种改进的贪心算法来解决数列极差问题。首先将原始数组复制到新数组maxArr,然后通过升序排序、ab+1操作、删除操作等步骤逐步减少数组元素,直到只剩下一个最大值。测试函数展示了如何应用该算法并计算给定正整数数列的极差。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.work.home_3_1;

import java.util.Arrays;

/**
 * 贪心算法-数列极差问题
 * 1. 问题描述:
 *         N个正数数列,进行如下操作:每一次擦去其中2个数,设a和b,然后在数列中加入一个数ab+1,如此下去直至只剩下一个数。
 *         在所有按这种操作方式最后得到的数中,最大的数记为MAX,最小的数记为MIN,则该数列的极差M定义为M=MAX-MIN 
 * 2. 分析问题:
 *         对于给定的数列,如果数列每操作一次就把数列中的值从小到大排列一次,然后按从小到大顺序做运算,则可以得到数列的最大值;
 *         如果数列每操作一次就把数列中的值从大到小排列一次,然后按顺序做运算,则可以得到数列的最小值。 
 * 3. 计算最大值: 

 *         (1)把原始数组赋值给新数组 maxArr 

 *         (2)对数组 maxArr 进行如下循环操作,直至剩余一个值,即为最大值: ①对 maxArr按升序排序;②从 maxArr的第一位开始进行

 *                   ab+1操作,数组第一位为第一操作数,数组最后一位为最后一位操作数, 把运算结果赋值给参与操作的第二个操作数;

 *                   ③删除第一个操作数;④重复第①步

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值