给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大
2017-09-13 19:48
633 查看
题目:
给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)
输入描述:无序整数数组A
输出描述:满足条件的最大乘积
输入例子: 3 4 1 2
输出例子: 24
给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)
输入描述:无序整数数组A
输出描述:满足条件的最大乘积
输入例子: 3 4 1 2
输出例子: 24
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String input = sc.nextLine(); int[] x = new int[input.length()]; char[] c = input.toCharArray(); int y = 0; for (char d : c) { x[y] = Integer.parseInt(String.valueOf(d)); y++; } insertSort(x); // for (int i : x) { // System.out.print(i+","); // } int temp = 1; for(int a=x.length-3;a<x.length; a++){ temp *= x[a]; } System.out.println(temp); } //插入排序 public static void insertSort(int[] a){ int temp = 0 ,j; for (int i = 1; i < a.length; i++){ if (a[i - 1] > a[i]){ temp = a[i]; j = i; while (j > 0 && a[j - 1] > temp){ a[j] = a[j - 1]; j--; } a[j] = temp; } } } }
相关文章推荐
- 给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大 java实现
- 程序员面试金典——解题总结: 9.17中等难题 17.8给定一个整数数组(有正数有负数),找出总和最大的连续数列,并返回总和
- 给定一个整数数组(有正数有负数),找出总和最大的连续数列,并返回总和。
- 给定一个整数数组,找出两个下标,要求后面下标所指的数减去前面下标所指的数之差最大
- 如果给定一个数组arr[0,...N-1],要求找出相邻两个数的最大差值
- 题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个 子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为 O(n)。
- 有一个整数数组(包括正数 负数 和0),给定一个M值,要求数组中的一个或多个值相加的和等于M,有多少种组合?
- 一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和,求所有子数组的和的最大值,要求时间复杂度为O(n)。
- 算法1:一个无序的int数组,包含正负数, 排序成:左边为负数 右边为正数
- 给定一个数组,当中有正负数,求当中的一段“子数组”(即任意长度,连续的数字), 使得这个“子数组”的和是所有“子数组”和中最大的
- 输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个 子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。
- 给定只包含正数的数组,给出一个方法,将数组中的数拼接起来,得到的数,是最大的。
- 一个长度为N的数组中包含正数 负数 0,请实现一个函数找出和为0的最长子数列
- 一个无序整数数组,数组元素大于5个,请用一种高效的算法找出其中最大的5个值.
- 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5,1},
- 给定一个数组和滑动窗口的大小,请找出所有滑动窗口里的最大值。
- n个学生站成一排 网易面试题之每个学生有一个能力值 牛牛想从n个学生中选出k名学生 要求相邻学生编号不超过d使得这k个学生乘积最大
- 9.11排序与查找(三)——给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,找出数组中的某个元素
- 给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,找出数组中的某个元素
- 给一个数组,元素都是整数(有正数也有负数),寻找连续的元素相加之和为最大的序列。