找出多组分辨率中最接近目标值的一组

news/2024/12/31 2:10:40/
package com.test;import java.util.ArrayList;
import java.util.List;public class Test {public static void main(String[] args) {// 目标分辨率int targetWidth = 640;int targetHeight = 480;//String str = "3264x2448,3264x1836,2560x1920,3264x1472,3200x1440,2304x1728,2560x1440,1920x1920,2048x1536,2304x1296,1920x1440,2400x1080,1920x1080";String str = "2560x1920,3264x1472,3200x1440,2304x1728,2560x1440,1920x1920,2048x1536,2304x1296,1920x1440,2400x1080,2304x1040,1920x1080,1632x1224,1600x1200,1440x1080,1280x960,1088x1088,1600x720,1280x720,960x540,800x600,800x480,720x480,352x288,320x240,176x144";String[] ary1 = str.split(",");List<String> list = new ArrayList<String>();for (int i = 0; i < ary1.length; i++) {String sss = ary1[i];list.add(sss);}//获取和目标值最接近的一组分辨率String s = getBestResolution(list,targetWidth,targetHeight);// 输出最接近目标分辨率的数据System.out.println("最接近目标分辨率的数据为:"+s);}/*** 	获取和目标值最接近的一组分辨率* @param list 分辨率集合,例如:[960x540,800x600,800x480,720x480,352x288,320x240,176x144]* @param targetWidth 目标分辨率宽,例如:640* @param targetHeight 目标分辨率高,例如:480* @return 和目标值最接近的一组分辨率,例如:720x480*/public static String getBestResolution(List<String>list,int targetWidth,int targetHeight) {// 数据集合List<Resolution> resolutions = new ArrayList<Resolution>();for (int i = 0; i < list.size(); i++) {String sss = list.get(i);String[] ary2 = sss.split("x");Resolution resolution = new Resolution(Integer.parseInt(ary2[0]), Integer.parseInt(ary2[1]));resolutions.add(resolution);}// 初始化最小差距为最大值int minDifference = Integer.MAX_VALUE;Resolution closestResolution = null;// 遍历数据集合,找到最接近目标分辨率的数据for (Resolution resolution : resolutions) {int difference = Math.abs(resolution.width - targetWidth) + Math.abs(resolution.height - targetHeight);if (difference < minDifference) {minDifference = difference;closestResolution = resolution;}}String res = String.format("%dx%d",closestResolution.width,closestResolution.height);return res;}// 分辨率类static class Resolution {int width;int height;public Resolution(int width, int height) {this.width = width;this.height = height;}}
}

输出结果

最接近目标分辨率的数据为:720x480

http://www.ppmy.cn/news/1144820.html

相关文章

leetCode 167.两数之和 || - 输入有序数组 双指针解法

167. 两数之和 II - 输入有序数组 - 力扣&#xff08;LeetCode&#xff09; 给你一个下标从 1 开始的整数数组 numbers &#xff0c;该数组已按 非递减顺序排列 &#xff0c;请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] …

10.selenium进阶

上述我们学习了selenium入门的一些操作, 本节知识点学习一些selenium的高级用法 1、嵌套网页 ​ 在前端开发中如果有这么一个需求。一个页面上的内容要被其它页面所共用。也就是说两个或者两个以上的页面需要共同存在与同一个页面。在前端页面开发中可以把写好的代码在每个页面…

CDGA数据治理工程师考试心得

2023年8月初&#xff0c;准备备考CDGA。当时也是很迷茫&#xff0c;啥时候考试都不知道&#xff0c;也不知道该怎么做。写这篇文章的目的也只是记录一下。 1.什么是CDGA? CDGA就是数据治理工程师&#xff08;Certified Data Governance Associate&#xff09;&#xff0c;“D…

SpringBoot 如何配置 OAuth2 认证

在Spring Boot中配置OAuth2认证 OAuth2是一种用于授权的开放标准&#xff0c;允许应用程序安全地访问用户的资源。Spring Boot提供了强大的支持&#xff0c;使得在应用程序中配置OAuth2认证变得非常容易。本文将介绍如何在Spring Boot中配置OAuth2认证&#xff0c;以便您可以在…

tortoise创建本地仓库

1.安装git和tortoise 推荐 TortoiseGit的安装与配置方法 以及 Git TortoiseGit 配置步骤以及本地版本管理 这里记录一下我遇到的问题 1.右键没有创建本地版本库 2 .创建了但是克隆不了 后续专有 一般选专有网络 注意自行谨慎选择 自行负责

Go 通道机制与应用详解

一、概述 Go语言&#xff08;也称为Golang&#xff09;是一个开源的编程语言&#xff0c;旨在构建简洁、高效和可靠的软件。其中&#xff0c;通道&#xff08;Channel&#xff09;是Go并发模型的核心概念之一&#xff0c;设计目的是为了解决不同协程&#xff08;Goroutine&…

pillow篇---pillow连续打开同一张图片会导致打开失败问题

如果你需要在多次操作同一张图像时避免出现缓存问题&#xff0c;你可以使用 Image.open() 方法的 seek() 方法将文件指针移动到图像数据的开头&#xff0c;以便重新读取图像数据。示例如下&#xff1a; from PIL import Image# 打开图像文件 image Image.open(example.jpg)# …

Lumos-az/MiniSQL阅读笔记

文章目录 处理SQL创建创建表RecordManager部分CatalogManager部分 创建索引IndexManager::createIndex部分API::createNewIndex部分CatalogManager::createIndex部分 插入删除删除表删除记录? 查询B树gif演示B树增删&#xff1a;插入&#xff1a;删除&#xff1a; 项目源码&am…