
独木舟上的旅行2
输入数据并对数组进行排序 从数组末尾开始向前遍历,寻找满足条件的最大数对 统计满足条件的数对数目 输入处理:读取输入数据并初始化数组和标志数组。 排序:对数组进行排序,以便后续配对。 贪心配对:从数组末尾向前遍历,寻找每个数可以与的最大数对,满足和不超过给定值w。 计数器统计:统计满足条件的数对数目,并根据标志数组输出结果。
发布日期:2021-05-16 15:24:36
浏览次数:13
分类:精选文章
本文共 1339 字,大约阅读时间需要 4 分钟。
贪心算法是一种在有序数组中寻找最优解的有效策略。以下是基于贪心算法实现的“独木舟上的旅行2”问题的解决方案。
方法概述
该算法通过以下步骤解决问题:
代码实现
public class 独木舟上的旅行2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int k = sc.nextInt(); while (k-- > 0) { int w = sc.nextInt(); int n = sc.nextInt(); int[] arr = new int[n]; boolean[] flag = new boolean[n]; for (int i = 0; i < n; i++) { arr[i] = sc.nextInt(); } Arrays.sort(arr); int count = 0; for (int i = 0; i < n; i++) { if (!flag[i]) { for (int j = n - 1; j > i; j--) { if (!flag[j] && arr[i] + arr[j] <= w) { count++; flag[j] = true; break; } else if (j == i + 1) { count++; break; } } } } System.out.println(flag[n - 1] ? count : count + 1); } }}
代码解释
该算法通过贪心策略确保了在每一步选择最优解,从而在整体上获得最优解。
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月24日 04时08分42秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
JavaSE总结
2019-03-06
Python IO编程
2019-03-06
CSS入门总结
2019-03-06
使用 TortoiseGit 时,报 Access denied 错误
2019-03-06
基于 HTML5 WebGL 的污水处理厂泵站自控系统
2019-03-06
django-表单之模型表单渲染(六)
2019-03-06
c++之程序流程控制
2019-03-06
spring-boot-2.0.3之redis缓存实现,不是你想的那样哦!
2019-03-06
有道云笔记 同步到我的博客园
2019-03-06
李笑来必读书籍整理
2019-03-06
Hadoop(十六)之使用Combiner优化MapReduce
2019-03-06
《机器学习Python实现_10_06_集成学习_boosting_gbdt分类实现》
2019-03-06
CoreCLR源码探索(八) JIT的工作原理(详解篇)
2019-03-06
andriod 开发错误记录
2019-03-07
C语言编译错误列表
2019-03-07
看明白这两种情况,才敢说自己懂跨链! | 喵懂区块链24期
2019-03-07
python中列表 元组 字典 集合的区别
2019-03-07