题目描述

给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。

示例

示例 1:输入:nums = [1,2,3]
输出:6示例 2:输入:nums = [1,2,3,4]
输出:24示例 3:输入:nums = [-1,-2,-3]
输出:-6

提示:

3 <= nums.length <= 104
-1000 <= nums[i] <= 1000

解题思路

c语言直接写一个快排:找一个基准值,这个值左边的数都小于它,右边的数都大于它,再对左右各半部分递归
快排参考
最终考虑到负负得正,试一试最小的两个数跟最大数相乘是否更大,否则直接输出最大三数之积

代码

void quickSort(int* nums, int low, int high){if (low >= high)return;int i = low;int j = high;long int index = nums[i];while(i<j){while (i < j && nums[j] >= index) { // 向左寻找第一个小于index的数j--;}if (i < j) {nums[i++] = nums[j]; // 将nums[j]填入nums[i],并将i向右移动}while (i < j && nums[i] < index){// 向右寻找第一个大于index的数i++;}if (i < j) {nums[j--] = nums[i]; // 将nums[i]填入nums[j],并将j向左移动}}nums[i] = index; // 将基准数填入最后的坑quickSort(nums, low, i - 1); // 递归调用,分治quickSort(nums, i + 1, high); // 递归调用,分治
}int maximumProduct(int* nums, int numsSize){quickSort(nums, 0, numsSize-1);return nums[0]*nums[1]*nums[numsSize-1]>nums[numsSize-1]*nums[numsSize-2]*nums[numsSize-3]? nums[0]*nums[1]*nums[numsSize-1]:nums[numsSize-1]*nums[numsSize-2]*nums[numsSize-3];}

链接

力扣628. 三个数的最大乘积相关推荐

  1. leetcode 628. Maximum Product of Three Numbers | 628. 三个数的最大乘积(Java)

    题目 https://leetcode-cn.com/problems/maximum-product-of-three-numbers/ 题解 找到三个数的最大乘积.先给数组排序,考虑可能有负数的情 ...

  2. LeetCode 628. 三个数的最大乘积

    1. 题目 给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积. 示例 1: 输入: [1,2,3] 输出: 6示例 2: 输入: [1,2,3,4] 输出: 24注意: 给定的整型 ...

  3. leetcode(3)——414. 第三大的数(C++中的 set,::作用符号,迭代器),628 三个数的最大乘积(sort函数的用法)

    文章目录 前言 414 程序 疑惑 set ::在c++中什么意思 一.作用域符号: 二.全局作用域符号: 三.作用域分解运算符: C++ 迭代器 628 程序 疑惑 sort函数 前言 大佬的程序, ...

  4. leetcode 628. 三个数的最大乘积(排序)

    给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积. 示例 1: 输入: [1,2,3] 输出: 6 解题思路 最大的乘积可能有两种情况 1.两个最小负数和一个最大正数 2.三个最大 ...

  5. 623.三个数的最大乘积

    623.三个数的最大乘积 题目 给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积. 示例 1: 输入: [1,2,3] 输出: 6 示例 2: 输入: [1,2,3,4] 输出: ...

  6. 整型数组中三个数的最大乘积

    题目:给定一个整形数组,在数组中找出由三个数组成的最大乘积. 示例1: 输入:{1,2,3} 输出: 6 示例2:{1,2,3,4} 输出: 24 ** 思路:先给数组排序,最大的数分为两种情况,一种 ...

  7. 牛客题霸 [三个数的最大乘积]C++题解/答案

    牛客题霸 [三个数的最大乘积]C++题解/答案 题目描述 给定一个无序数组,包含正数.负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1). 题解: 有人说 ...

  8. 力扣第三题java_LeetCode 题解 | 力扣杯 LCP 06. 拿硬币

    力扣杯 LCP 06. 拿硬币(点击查看题目) 力扣​leetcode-cn.com 题目描述 桌上有 n 堆力扣币,每堆的数量保存在数组 coins 中.我们每次可以选择任意一堆,拿走其中的一枚或者 ...

  9. leetcode628. 三个数的最大乘积(简单,我觉得你不会)

    给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积. 示例 1: 输入:nums = [1,2,3] 输出:6 示例 2: 输入:nums = [1,2,3,4] 输出: ...

最新文章

  1. php 安全基础 第一章简介 原则
  2. 操作系统原理之磁盘调度
  3. android游戏画面抖动,抖音游戏主播是怎么直播手机画面的?
  4. jQuery (DOM篇)
  5. python-jsonrpc框架实现JsonRPC协议的web服务
  6. 实战SSM_O2O商铺_04自下而上逐步整合SSM
  7. 聚类算法K-Means, K-Medoids, GMM, Spectral clustering,Ncut
  8. 重学TCP协议(11)TFO(Tcp Fast Open)
  9. 介词at_介词逻辑| 离散数学
  10. RX库中的IDisposable对象
  11. 从没有C到ANSI C的认识
  12. Hbase数据模型入门
  13. 8段数码管与字符对照表
  14. 人脸识别数据集建立及应用
  15. 阿里easyExcel学习笔记(maven)
  16. navigateTo和navigateBack的使用
  17. 构建orangePi r1 plus (RK3328)系统的整个过程
  18. 高斯消元法的python实现
  19. 闭关修炼——one——struts2
  20. 移动应用开发期末总结

热门文章

  1. 获取当地天气_6 点起来看天气预报?正经人谁看天气预报,原来是为了看她
  2. plantuml 方法图_UML与软件建模:第四次作业(学习PlantUML活动图绘制方法)
  3. html5 video在uc不自动播放,uc浏览器无法播放视频怎么办
  4. 菜鸟python_手把手教你,菜鸟也能用Python写一个2048游戏
  5. C++ 洛谷 P2704 [NOI2001]炮兵阵地
  6. centos 7 一键安装gitlab
  7. 安卓系统为何这么容易被黑客入侵
  8. 20个JS 小技巧超级实用
  9. Node.js文件操作二
  10. ListView IllegalStateException