当前位置: 首页 > news >正文

动态规划求数组中相邻两数的最小差值( 即相差的绝对值 ) java 实现

算法的核心是:计算当前数和前一个数的差值,用该差值和以前最小的连续数的差值作比较;如果当前的差值更小,则发现了更小的连续数的差值;如果当前的差值更大,则沿用以前的最小连续数差值作为新的最小连续数差值。

MinDiffBetweenNeighborNumbersTest.java:
import java.util.Random;public class MinDiffBetweenNeighborNumbersTest {public static void main(String[] args) {Random random = new Random();int[] nums = {1,10,11,2,5,7,9,100,200,200,300};int length = nums.length;// 99,98      2,1    52,51   66,63// 求相差最小的2个相邻的数的差值( 即相差的绝对值 )int[][] dp = new int[length][3];// dp[i][0] 存储的是较大的数// dp[i][1] 存储的是较小的数// dp[i][2] 存储的是两数差值的绝对值for (int i = 0; i < length; i++) {int num = nums[i];if( i==0 ){dp[i][0] = num;dp[i][1] = num;dp[i][2] = 0;}else{int num_prev = nums[i-1];if( i == 1 ){if( num > num_prev ){dp[i][0] = num;dp[i][1] = num_prev;}else {dp[i][0] = num_prev;dp[i][1] = num;}dp[i][2] = Math.abs( num - num_prev );}else {// 计算当前数和前一个数的差值,用该差值和以前最小的连续数的差值作比较;如果当前的差值更小,则发现了更小的连续数的差值;如果当前的差值更大,则沿用以前的最小连续数差值作为新的最小连续数差值int diff = Math.abs(num - num_prev);int diff_prev = dp[i - 1][2];if( diff < diff_prev){if( num> num_prev ){dp[i][0]= num;dp[i][1]= num_prev;}else {dp[i][0]= num_prev;dp[i][1]= num;}dp[i][2] = diff;}else {dp[i][0] = dp[i-1][0];dp[i][1] = dp[i-1][1];dp[i][2] = diff_prev;}}}}int[] result = dp[length - 1];System.out.println( result[0] + " 和 " + result[1] + " 相差 " + result[2] );}
}

http://www.lryc.cn/news/238921.html

相关文章:

  • webGL开发微信小游戏
  • leetcode面试经典150题——29 三数之和
  • 数据分析基础之《jupyter notebook工具》
  • Android Studio Error “Unsupported class file major version 61“---异常信息记录
  • javaScript 内存管理
  • Idea2023 Springboot web项目正常启动,页面展示404解决办法
  • Android手机如何用Charles抓包HTTPS接口
  • Oracle for Windows安装和配置——Oracle for Windows net配置
  • C#中.NET 7.0 Windows窗体应用通过EF访问已有数据库并实现追加、删除、修改、插入记录
  • 【文末送书】计算机网络 | IO多路转接技术 | poll/epoll详解
  • 【Linux】 uptime命令使用
  • 数学建模-图与网络模型解题方法和代码实现
  • 宏集新闻 | 虹科传感器事业部正式更名为宏集科技
  • DataFunSummit:2023年数据基础架构峰会-核心PPT资料下载
  • 解析大型语言模型的训练、微调和推理的运行时性能
  • MAX/MSP SDK学习06:内存管理
  • python网络通信之基础知识填坑
  • 【腾讯云云上实验室-向量数据库】腾讯云开创新时代,发布全新向量数据库Tencent Cloud VectorDB
  • 【图像分类】【深度学习】【Pytorch版本】GoogLeNet(InceptionV4)模型算法详解
  • opencv dots_image_kernel
  • 使用pytorch利用神经网络原理进行图片的训练(持续学习中....)
  • 2023年中国合成云母行业现状及市场格局分析[图]
  • Vue3+Vite实现工程化,插值表达式和v-text以及v-html
  • 艾泊宇产品战略:灵感于鬼屋,掌握打造卓越用户体验的关键要素
  • 深度学习环境配置(Anaconda+pytorch+pycharm+cuda)
  • 不是说人工智能是风口吗,那为什么工作还那么难找?
  • new Vue() 发生了什么
  • 【算法】二叉树的存储与遍历模板
  • 【Go学习之 go mod】gomod小白入门,在github上发布自己的项目(项目初始化、项目发布、项目版本升级等)
  • 79基于matlab的大米粒中杂质识别