使用sorted内置函数排序数列来找出最大三个数的乘积

简介: 使用sorted内置函数排序数列来找出最大三个数的乘积

0 引言

利用sort内置函数来解决找列表中最大三个数的乘积。

1 问题

给出一个正整数型数组nums(不考虑有负数的情况),在数组中找出由三个数组组成的最大乘积值,并输出这个乘积。

示例1:

输入:nums=「1,2,3」

输出:6

示例2:

输入:nums=「1,2,3,4」

输出:24

2 方法

这里的方法调用到的内置函数sorted

首先建立一个列表nums=[1,3,6,5]可以看出列表中的数未按顺序排列。

然后令nums1=sorted(nums)得到一个新函数nums1并用sorted函数对旧列表里的数字进行排序

因为要得到三个最大数字的乘积因为已经由从小到大排序所以直接用列表中的查来找到最大的三个数分别是nums[-1],nums[-2]nums[-3]

最后用x=nums[-1]*nums[-2]*nums[-3]来表示乘积并用

Print(‘{}为最大三个数组成的乘积’.format{x})

3 实验结果与讨论

通过实验、实践等证明提出的方法是有效的,是能够解决开头提出的问题。

代码清单 1

Courier New字体,23磅行间距
nums=[1,2,3,4]
nums1=sorted(nums)
x=nums1[-1]*nums1[-2]*nums1[-3]
print(‘{}为最大的三个数组成的最大乘积’.format(x))

4 结语

针对使用sort内置函数排序数列来找出最大三个数的乘积问题,提出利用sort内置函数来解决找列表中最大三个数的乘积方法,通过实验,证明该方法是有效的,本文的方法有不足在于找列表中最大的三个数使用的倒数三个数,可以直接使用倒叙直接取前三位数字更为简便,以后可以继续研究数据大且多的列表来排序。

目录
相关文章
|
4月前
|
算法
正序数组中位数
给定两个有序数组nums1和nums2,要求找到它们合并后的中位数,时间复杂度需达到O(log(m+n))。通过双指针法遍历两个数组,使用left和right变量记录遍历过程中的值,最终根据合并后数组长度的奇偶性返回中位数。此方法有效避免了直接合并数组带来的高时间复杂度问题。
36 0
|
7月前
|
算法 Python
【面试题】寻找两个正序数组的中位数
【面试题】寻找两个正序数组的中位数
55 0
|
10月前
|
算法
leetcode代码记录(寻找两个正序数组的中位数
leetcode代码记录(寻找两个正序数组的中位数
69 2
|
10月前
|
机器学习/深度学习 算法 测试技术
【排序 贪心】3107. 使数组中位数等于 K 的最少操作数
【排序 贪心】3107. 使数组中位数等于 K 的最少操作数
【排序 贪心】3107. 使数组中位数等于 K 的最少操作数
|
10月前
|
算法 前端开发
二的幂数组中查询范围内的乘积
二的幂数组中查询范围内的乘积
48 0
|
10月前
|
存储 算法 Go
LeetCode第四题: 寻找两个正序数组的中位数
给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的中位数。
|
10月前
|
算法 C++
寻找两个正序数组的中位数(C++)
寻找两个正序数组的中位数(C++)
51 0
|
10月前
leetcode-4:寻找两个正序数组的中位数
leetcode-4:寻找两个正序数组的中位数
51 0
|
10月前
|
算法 安全 C#
Leetcode算法系列| 4. 寻找两个正序数组的中位数
Leetcode算法系列| 4. 寻找两个正序数组的中位数
|
10月前
|
算法
leetcode-寻找两个正序数组的中位数
leetcode-寻找两个正序数组的中位数
55 0