微软面试100题---寻找和为定值的多个数
来源:互联网 发布:php打印前一天时间 编辑:程序博客网 时间:2024/06/08 13:22
题目
输入两个整数n 和m,从数列1,2,3…….n 中随意取几个数,使其和等于m ,要求将其中所有的可能组合列出来。
实现
思路:0/1背包问题,考虑是否取第n个数的策略,可以转化为一个只和前n-1个数相关的问题:
- 1)如果取第n个数,那么问题就转化为“取前n-1个数使得它们的和为sum-n”,对应的代码语句就是sumOfkNumber(sum -
n, n - 1); - 2)如果不取第n个数,那么问题就转化为“取前n-1个数使得他们的和为sum”,对应的代码语句为sumOfkNumber(sum, n -
1)。
代码实现:
public static void SumOfkNumber(int n,int m,int[] flag,int length){ if(n<1 || m<1){ return; } if(n>m){ n=m; } if(n==m){ flag[n-1]=1; for(int i=0;i<length;i++){ if(flag[i]==1){ System.out.print(i+1+" "); } } System.out.println(); flag[n-1]=0; } flag[n-1]=1; SumOfkNumber(n-1,m-n,flag,10); flag[n-1]=0; SumOfkNumber(n-1,m,flag,10);}
0 0
- 寻找和为定值的多个数 【微软面试100题 第二十一题】
- 微软面试100题---寻找和为定值的多个数
- 寻找和为定值的多个数
- 寻找满足和为定值的多个数
- 寻找和为定值的两个数/多个数
- 寻找和为定值的两个或多个数
- 寻找和为定值的多个数
- 【编程练习】寻找和为定值的多个数
- 寻找和为定值的多个数
- 寻找和为定值的多个数
- 寻找和为定值的多个数
- 【算法】寻找和为定值的多个数
- 寻找和为定值的多个数
- 寻找和为定值的多个数
- github-july-寻找和为定值的多个数
- 寻找和为定值的多个数
- 寻找和为定值的多个数
- 寻找和为定值的多个数
- Collections的emptyList() emptyMap() emptySet()
- 实践反馈-hierarchyviewer
- 常用查看Linux系统信息命令
- js模版引擎handlebars.js
- 2016校招真题汇总2:简单错误记录
- 微软面试100题---寻找和为定值的多个数
- 2016年最值得学习的五大开源项目
- Reverse Words in a String
- 函数式编程
- #Paper Reading# Leveraging Multi-Domain Prior Knowledge in Topic Models
- HAProxy+Keepalived实现Web服务器负载均衡
- 深入理解javascript描述元素内容的5个属性
- linux下Unable to locate package *** 的错误处理
- 排序的基础概念