将一个数组划分为和差值最小的子数组
要求:将数组中的数划分为两组,使得两个子数组的和的差值最小,数组中的数的取值范围为0<X<100,元素个数也是大于0小于100.如:a[]={2,4,5,6,7},得出的两组数:{2,4,6}和{5,7},abs(sum(a1)-sum(a1))=0;如:{2,5,6,10},abs(sum(2,10)-sum(5,6))=1所以:子数组为:{2,10}和{5,6}。
#include <iostream>
using namespace std;const int M = 100;
int w[M];
int currentSum[M*M];
bool state[M][M];
int main()
{int n;while (scanf("%d ", &n) != EOF) {//输入数组元素个数int sum = 0;for (int i = 0; i < n; ++i) {scanf("%d", &w[i]);sum += w[i];//sum存储整个数组元素的和}memset(currentSum, 0, sizeof(currentSum));memset(state, 0, sizeof(state));for (int i = 0; i < n; ++i)for (int j = sum/2; j >= w[i]; --j) {if (currentSum[j] < currentSum[j-w[i]] + w[i]) {currentSum[j] =currentSum[j-w[i]] + w[i];state[i][j] = true;}}printf("%d\n", sum - currentSum[sum/2]*2);int i = n, j = sum/2;while (i--) {if (state[i][j]) {printf("%d ", w[i]);j -= w[i];}}printf("\n");}return 0;
}
程序运行结果如下:
转载于:https://www.cnblogs.com/hainange/p/6334064.html
将一个数组划分为和差值最小的子数组相关推荐
- Leonard代码随想录算法训练营第二天| 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II。
第一章数组 (今日任务) 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II ,总结 建议大家先独立做题,然后看视频讲解,然后看文章讲解,然后在重新做一遍题,把题目AC,最后整理 ...
- 代码随想录算法训练营第二天| 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II。
代码随想录算法训练营第二天| 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II. 977.有序数组的平方 209. 长度最小的子数组 59. 螺旋矩阵 II 977.有序数组的 ...
- 代码随想录训练营第二天|LeetCode977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵II
day2 | LeetCode977.有序数组的平方.209.长度最小的子数组.59.螺旋矩阵II 创建时间: October 13, 2022 3:29 PM 一.今日任务 977.有序数组的平方 ...
- 代码随想录算法训练营第二天 | 力扣977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵II
代码随想录算法训练营第二天 | 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II 977.有序数组的平方 题目链接:有序数组的平方 题目描述: 给你一个按 非递减顺序 排序的整 ...
- 代码随想录算法训练营第二天 | LeetCode977.有序数组的平方 ,209.长度最小的子数组,59.螺旋矩阵II
代码随想录算法训练营第二天 | LeetCode977.有序数组的平方 ,209.长度最小的子数组,59.螺旋矩阵II 一. LeetCode977.有序数组的平方 1. 题目链接[LeetCode9 ...
- 代码随想录Day02 | LeetCode977.有序数组的平方、LeetCode209.长度最小的子数组、LeetCode59.螺旋矩阵II
977.有序数组的平方 力扣题目链接(opens new window) 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序. 示例 1: ...
- 代码随想录第二天 |LeetCode977.有序数组的平方,LeetCode209.长度最小的子数组,LeetCode59.螺旋矩阵II
LeetCode977.有序数组的平方 977. 有序数组的平方 - 力扣(LeetCode) 暴力解法: 一开始不习惯用双指针解法,习惯性先平方再用双指针,发现做不出了HH.于是愉快的用传统暴力解法 ...
- 代码随想录算法训练营第二天|leetcode 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II
leetcode 977.有序数组的平方 想到昨天写的双指针,十分刻意用了一下,感觉还是比较生疏,还得加强练习和思考,然后发现还需要排序,想到了vector的排序sort(),但是觉得直接用不好,也忘 ...
- 代码随想录算法训练营第二天|LeetCode977.有序数组的平方,209.长度最小的子数组, 59.螺旋矩阵II
题目连接:977.有序数组的平方 暴力法:将数组所有元素平方然后再排序(未利用题目条件:原始数组按照非降序排列) 双指针法:数组中各元素符号有三种情况:①所有元素非负(将数组中元素平方即可).②所有元 ...
最新文章
- 0729------Linux网络编程----------使用 select 、poll 和 epoll 模型 编写客户端程序
- 降低数据中心功耗的 4 大方法
- 一个草根交通研究员的拼车产品分析
- Winform中实现颜色拾取器获取RGB与16进制颜色程序与源码分享
- SAP UI5应用入口App.controller.js是如何被UI5框架加载的?
- android可点击的列表,如何在Android的可扩展列表视图中的子点击...
- 伪分布式hbase数据迁移汇总
- bash for循环_Bash 中的 For 循环
- opencv mat数据剪裁感兴趣的部分处理方法
- linux账户初始化文件,Linux启动初始化配置文件浅析
- js字符串方法、数组方法整理
- Extjs 实现Iframe的子窗口遮罩整个页面
- 编程人的「对象」长啥样?
- 动态更新 HTML 内容 —— AJAX
- Linq学习比较第2篇
- canvas画布会黑屏吗_你真的会绷油画布吗?
- SCU4487 king's trouble I(深搜DFS)
- 【9.8校内测试】【贪心/树规】【环覆盖问题】【线性规划】
- Jenkins搭建.NET自动编译测试并实现半增量部署
- 苹果手机投屏软件_小技巧!苹果手机怎么投屏到笔记本?
热门文章
- 打桥位lisp_lisp函数
- centos6 安装 mantisbt-1.2.8 —— (3)Linux系统下yum源配置(Centos 6)
- 函数参数 不定参数,和 默认参数
- 向PHP使用Post方式上传文件
- MySQL-数据类型
- Mysql错误问题:ERROR 1005 (HY000): Can't create table 'crm_1.tbl_client' (errno: 150)
- JQ用变量关联input name
- 码农们不得不重视的问题
- Linux -- free 命令 内存适用状态监控
- 视频处理的知识_开源项目_项目列表