【LeetCode】628. 三个数的最大乘积】的更多相关文章

题目描述 LeetCode 628. 三个数的最大乘积 给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积. 示例1 输入: [1,2,3] 输出: 6 示例2 输入: [1,2,3,4] 输出: 24 Java 解答 class Solution { public int maximumProduct(int[] nums) { int max1 = Integer.MIN_VALUE, max2 = Integer.MIN_VALUE, max3 = Integer.MIN…
628. 三个数的最大乘积 给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积. 示例 1: 输入: [1,2,3] 输出: 6 示例 2: 输入: [1,2,3,4] 输出: 24 注意: 给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]. 输入的数组中任意三个数的乘积不会超出32位有符号整数的范围. PS: 两种可能,一种全是正数, 一种两个负数,一个整数 二者取一 class Solution { public int maximu…
LeetCode:三个数的最大乘积[628] 题目描述 给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积. 示例 1: 输入: [1,2,3] 输出: 6 示例 2: 输入: [1,2,3,4] 输出: 24 注意: 给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]. 输入的数组中任意三个数的乘积不会超出32位有符号整数的范围. 题目分析 仔细审题,我们发现,数组中元素的可以是负数,这也就说明,不一定是排序后的后三位数字是最大乘积. 那…
解题思路 如果数组中全是正数或者全是负数,最大乘积就是最大的三个数的乘积.如果数组中既有正数又有负数,最大乘积可能是三个最大正数乘积,也可能是两个最小负数和最大正数的乘积.遍历数组找到最大的三个数和最小的两个数即可. 代码 class Solution { public int maximumProduct(int[] nums) { if (nums.length == 3) return nums[0] * nums[1] * nums[2]; int max1 = Integer.MIN_…
给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积. 示例 1: 输入: [1,2,3] 输出: 6 示例 2: 输入: [1,2,3,4] 输出: 24 注意: 给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]. 输入的数组中任意三个数的乘积不会超出32位有符号整数的范围. 因为这题里出现了负数,所以最大值并不是简单得取三个最大值就好了. 参考了评论区的做法,将这个问题分解为:三个最大值的乘积 和 两个最小值和一个最大值的乘积 二者之间…
题目: Given an integer array, find three numbers whose product is maximum and output the maximum product. Example 1: Input: [1,2,3] Output: 6 Example 2: Input: [1,2,3,4] Output: 24 分析: 给定一个数组,返回其中三个元素乘积的最大值. 注意的是,这道题是可以有负数出现,且是求三个数的乘积,所以我们需要考虑负数的情况. 最先…
Given an integer array, find three numbers whose product is maximum and output the maximum product. Example 1: Input: [1,2,3] Output: 6  Example 2: Input: [1,2,3,4] Output: 24  Note: The length of the given array will be in range [3,104] and all elem…
给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积. 示例 1: 输入: [1,2,3] 输出: 6 示例 2: 输入: [1,2,3,4] 输出: 24 注意: 给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]. 输入的数组中任意三个数的乘积不会超出32位有符号整数的范围. bool cmp(int x, int y) { return x > y; } class Solution { public: int maximumProdu…
题目不难: 思路一(排序取两端) 先排序,最后三个数相乘即可.(很快就想到了,但是没想全面 […
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3726 访问. 给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积. 输入: [1,2,3] 输出: 6 输入: [1,2,3,4] 输出: 24 注意: 给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]. 输入的数组中任意三个数的乘积不会超出32位有符号整数的范围. Given an integer ar…
题目难度:Medium 题目: Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that each input would have exactly one solution. 翻译: 给定一个n个整数的数组S,在S…
Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero. Note: Elements in a triplet (a,b,c) must be in non-descending order. (ie, a ≤ b ≤ c) The solut…
最大最小公倍数 如题 话不多说,直接上代码 public class MaxCommonMultiple{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); long n = sc.nextLong(); System.out.println(getResult(n)); } public static long getResult(long n) { if(n<=2) { return n…
已知一个正整数N,问从1~N中任选出三个数,它们的最小公倍数最大可以为多少. 当n为奇数:n.n-1.n-2这是三个最大数,并且它们两两互质.因为连续的奇.偶.奇,互质.连续的两个数互质是因为它们的公约数只有1,因为大于等于2的公约数n必须两个数至少相差n:连续的两个奇数互质也是因为它们的公约数只有1,因为大于等于3的公约数n必须两个数至少相差n. 当n为偶数:n-1.n-2.n-3是一组极大解,如果答案要大于当前值,只能是大于这3个数的乘积,那么只能把其中一个数变成n,并且三个数也要两两互质.…
LeetCode:三数之和[15] 题目描述 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组. 注意:答案中不可以包含重复的三元组. 例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]] 题目分析 我试了很多方法尝试去解决这个问题,但是都无果.后来在一次算法课上讲到了这个问题,3Su…
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script> /* 算出一个数的平方值 function add(a){ var b=Math.sqrt(a); return b; } alert(add(3));*/ /*// 算出一个数的阶乘 func…
1061: 从三个数中找出最大的数 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 154  Solved: 124[Submit][Status][Web Board] Description 定义一个带参的宏(或者模板函数),从三个数中找出最大的数. Input 3个短整型数,空格隔开 3个实数,空格隔开 3个长整数,空格隔开 Output 最大的数,对于实数保留2位小数. Sample Input 1 2 3 1.5 4.7 3.2 12345…
1.解一元二次方程 注:求根公式为(-b+根号德尔塔)/2a,(-b-根号德尔塔)/2a Scanner sc=new Scanner(System.in); System.out.println("输入a:"); double a=sc.nextFloat(); System.out.println("输入b:"); double b=sc.nextFloat(); System.out.println("输入c:"); double c=sc…
问题描述: 现在要写一个程序,实现给三个数排序的功能     输入        输入三个正整数    输出       给输入的三个正整数排序       样例输入 20 7 33      样例输出 7 20 33 程序分析:先找出最大和最小的数,再找出中间数,并分步输出,下面是代码 源代码 #include<stdio.h>  main() {   int a,b,c,m,n;    scanf("%d%d%d",&a,&b,&c);    …
题目意思:给一个数组,给一个target,找三个数的和,这个和要与target距离最近,输出这个和 思路:这个题比3sum要稍微简单一点,如果需要优化,也可以去重,不过因为结果唯一,我没有去重. min abs(flag=num[i]+num[j]+num[k]-target),判断条件稍微调整,就是flag>0,则k-- flag<0,则j++,flag=0,则返回target class Solution { public: int threeSumClosest(vector<in…
题目意思:给一个乱序数组,在里面寻找三个数之和为0的所有情况,这些情况不能重复,增序排列 思路:前面2sum,我用的是map,自然那道题map比双指针效率高,这道题需要先排序,再给三个指针,i.j.k 对于i指针从前往后遍历,对于一个固定的i指针,其实就是2Sum的情况,给定一前一后两个指针进行遍历, 值大了,就把后面的指针往前移,值小了就把前面的指针往后移. 比较麻烦的地方在于去重,首先是i指针的去重,j和k只用一个去重就可以了 ps:这是数组中一种十分常用的方法. class Solutio…
Problem Description Some days ago, I learned the concept of LCM (least common multiple). I've played with it for several times and I want to make a big number with it. But I also don't want to use many numbers, so I'll choose three positive integers…
Console.WriteLine("请输入第一个数:"); int a = Convert.ToInt32( Console.ReadLine()); Console.WriteLine("请输入第二个数:"); int b = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入第三个数:"); int c = Convert.ToInt32(Console.ReadLine(…
#import "ViewController.h" @interface ViewController ()@property (weak, nonatomic) IBOutlet UITextField *one;//能够输入的第一个文本文框 用的是text按键@property (weak, nonatomic) IBOutlet UITextField *two;//能够输入的第二个文本文框 用的是text按键@property (weak, nonatomic) IBOutl…
题目:输入三个整数x,y,z,请把这三个数由小到大输出. 程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x> y则将x与y的值进行交换,然后再用x与z进行比较,如果x> z则将x与z的值进行交换,这样能使x最小. package com.li.FiftyAlgorthm; import java.util.Scanner; /** * 题目:输入三个整数x,y,z,请把这三个数由小到大输出. 程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y * 则…
package wac.wev.as;//新建一个方法在求最大值import java.util.Scanner; public class MaxLian {public static void main(String[] args){//键盘录入以及导包Scanner sc= new Scanner(System.in);//数据接收System.out.println("请输入第一个数据:");int a = sc.nextInt();System.out.println(&qu…
例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2). 思路:首先对数组进行排序       Arrays.sort(arr); 将前三个数相加赋给closeNum,表示初始化     int closeNum = arr[0] + arr[1] + arr[2]; 在第一层循环中for(int i = 0;i<arr.length;i++),我们定义双指针就j和k,j指向当前i的下一个…
leetcode第三题: 题目: 给定一个字符串,找出不含有重复字符的最长子串的长度. 源码(使用java语言): class Solution { public int lengthOfLongestSubstring(String s) { int result = 0; int front = 0 ; int after = 0; char[] temp = s.toCharArray();//save the String to a chararray Map<Character,Int…
Description 给出三个数a,b,c,最大值是?最小值是? ----------------------------------------------------------------------------- 编写以下两个函数: get_num()的功能是读取输入的三个整数a,b,c: max_min()的功能是求出a,b,c的最大值和最小值. 以上函数的调用格式见“Append Code”.这里不给出函数原型,请通过main()函数自行确定. Input 输入的第一个整数n,表示…
python简单方法判断三个数能否组成三角形 #encoding=utf-8 import math while True: str=raw_input("please input three numbers a,b,c:('stop' to exit)") print "####",str,type(str) if str !="stop": x,y,z = eval(str) min_value=min(x,y,z) max_value=ma…