一道小题:从一个数组里产生所有可能的乘积组合

比如给定一个数组[2,3,11] 要求产生[1,2,3,6,11,22,33,66]

观察可得:[2,3] 产生了[1,2,3,6] 的乘积可能。当加入11时,11会和现有的每一个元素都相乘得到[1,2,3,6,11,22,33,66]

public static void allProducts(int[] arr) {
		List<Integer> list = new ArrayList<Integer>();
		list.add(1);

		for(int i=0; i<arr.length; i++) {
			int size = list.size();
			for(int j=0; j<size; j++) {
				list.add(arr[i] * list.get(j));
			}
		}

		System.out.println(list);
	}

一道小题:从一个数组里产生所有可能的乘积组合

时间: 2024-09-27 18:59:03

一道小题:从一个数组里产生所有可能的乘积组合的相关文章

MATLAB选出一个数组里n个元素的所有组合

用nchoosek(A,n) 如: nchoosek([1,5,3,2,4,0],3) nchoosek([1,5,3,2],2)ans =     1     5     1     3     1     2     5     3     5     2     3     2 如:

java实现求一个数组里最大值和最小值之前缺省的数的算法

问题描述: 求一个数组里最大值和最小值之间缺省的数,例如 int arrDemo = {1, 3, 7};  那么就要输出最小值1和最大值7之间缺少的数字2,4,5,6 代码如下,有更好的思路欢迎大家在评论区留言讨论 1 package test; 2 3 public class Test { 4 5 static int[] array = { 6 -10,0,3,3,9 7 }; 8 9 private static void printEmptyItems(int[] array) {

计算一个数组里的重复值并且删去(java)

主要思想: 假设数字里的值都为正 循环判断数组 如果与前面的数字相同则变为-1 然后记录-1的个数算出重复值 然后重新new一个减去重复值长度的新数组 和原数组判断 不为-1的全部复制进来即可 代码如下: 1 package Del_Same_Num; 2 3 public class Del_Same_Num { 4 5 static int count=0; 6 7 //计算重复值 8 public static int count_same_number(int[] a) 9 { 10 f

php判断检测一个数组里有没有重复的值

php判断检测一个数组里有没有重复的值 php里有一个处理数组重复值得函数array_unique,我们的思路就是用这个函数来实现的. if (count($array) != count(array_unique($array))) {       echo '该数组有重复值';   }

python如何将数组分成几个区间,取每个区间的最大值存到另一个数组里

python如何将数组分成几个区间,取每个区间的最大值存到另一个数组里 贴吧上有人问python 问题:有一段数组,把它分成几个区间,取每个区间的最大值存到另一个数组里 比如数组a[1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2,1,0] 看看python培训黄哥所写的2个方法. 第一种方法: # coding:utf-8"""黄哥python远程视频培训班https://github.com/pythonpeixun/article/blob/master/

JavaScript怎么把对象里的数据整合进另外一个数组里

https://blog.csdn.net/qq_26222859/article/details/70331833 var json1 = [ {"guoshui":[ 300000, 500000, 600000, 800000, 1000000, 1200000, 1400000, 1600000, 1800000, 1600000, 1400000, 1200000 ]}, {"dishui":[ 1100000, 1200100, 1300000, 110

由一道小题谈谈JS的new操作符

今天碰到一个题,感觉还是有一定的迷惑性的.而这也正说明一点,有时候形成的惯性思维很要命,特别是遇到小的知识点的时候.不多说,先来看看这道题: 运行这段代码之后,"mike"的值是什么? function Person(name, age){ this.name = name; this.age = parseInt(age,10); } var mike = Person('mike', '25'); A. null B. 代码不能运行,语法有错误 C. { name: 'Mike',

在一个二维数组中,每一行都从左到右递增,每一列都从上到下递增,在这样一个数组里查找一个数

第一种: 思路: 二维数组是从左到右递增,从上到下递增,row为行数,col为列数,a[row-1][col-1]为最大数,如果剔除这一行,这一列,则最大数为a[row-2][col-2],如果要查找的num大于a[row-2][col-2]并且大于a[row-1][col-1],则在该row-1行和col-1列查找,照这样遍历. 这样太麻烦,效率太低,应当舍弃. #include<stdio.h> #include<stdlib.h> #include<assert.h&g

又一道小题

题目:给出一系列DNA字母串(高中生物知识可知仅含ACTG四个字母),以逆序数作为评判标准,从好到坏排序.逆序数:在n个元素的任意排列中,当某两个元素的先后次序与标准次序不同时,就说有1个逆序.一个排列中所有逆序总数叫做这个排列的逆序数. 方法:先求每个字符串的逆序数,再将字符串按逆序数排列. 代码抄自GitHub: import java.util.*; public class Main { public static void main(String[] args) { Scanner i