当前位置:实例文章 » 其他实例» [文章]【力扣周赛】第354场周赛

【力扣周赛】第354场周赛

发布人:shili8 发布时间:2024-12-31 08:02 阅读次数:0

**力扣周赛第354场周赛**

###问题1: 最小公倍数的三元组给定三个正整数 `a`、`b` 和 `c`,请找出最小公倍数 (LCM) 为 `k` 的三元组 `(a, b, c)`。

**示例1:**

* 输入:`a =2`, `b =4`, `c =3`
* 输出:`[1,2,3]`

**示例2:**

* 输入:`a =6`, `b =5`, `c =8`
* 输出:`[2,3,4]`

**示例3:**

* 输入:`a =1`, `b =1`, `c =1`
* 输出:`[1,1,1]`

###问题2: 最大子序列和给定一个整数数组 `nums`,请找出最大子序列和。

**示例1:**

* 输入:`nums = [-2, -3,4, -1, -2,1,5, -3]`
* 输出:`7`

**示例2:**

* 输入:`nums = [1]`
* 输出:`1`

###问题3: 最大子矩阵和给定一个二维整数数组 `matrix`,请找出最大子矩阵和。

**示例1:**

* 输入:`matrix = [[1, -2,1], [4, -3,5]]`
* 输出:`7`

###问题4: 最大子序列乘积给定一个整数数组 `nums`,请找出最大子序列乘积。

**示例1:**

* 输入:`nums = [-2,0, -3]`
* 输出:`0`

##代码实现###问题1: 最小公倍数的三元组

import mathdef smallestGoodBase(n):
 for i in range(1, int(math.log2(n)) +1):
 if (n -1) % i ==0:
 return i


###问题2: 最大子序列和
def maxSubarraySum(nums):
 max_sum = float('-inf')
 current_sum =0 for num in nums:
 current_sum = max(num, current_sum + num)
 max_sum = max(max_sum, current_sum)
 return max_sum


###问题3: 最大子矩阵和
def maxSubmatrixSum(matrix):
 rows, cols = len(matrix), len(matrix[0])
 for left in range(cols):
 for right in range(left +1, cols +1):
 current_sum = sum(matrix[i][left:right] for i in range(rows))
 if current_sum > max_sum:
 max_sum = current_sum return max_sum


###问题4: 最大子序列乘积
def maxSubarrayProduct(nums):
 max_product = float('-inf')
 min_product = float('inf')
 for num in nums:
 if num ==0:
 return0 max_product = max(num, max_product * num)
 min_product = min(num, min_product * num)
 return max_product


## 总结本周赛共有四道题目,分别是最小公倍数的三元组、最大子序列和、最大子矩阵和和最大子序列乘积。通过分析每个问题,我们可以得出以下结论:

* 最小公倍数的三元组需要找到满足条件的三元组。
* 最大子序列和需要找出数组中连续元素的最大和。
* 最大子矩阵和需要找出二维数组中连续元素的最大和。
* 最大子序列乘积需要找出数组中连续元素的最大乘积。

通过使用适当的算法和数据结构,我们可以解决这些问题并得到正确答案。

其他信息

其他资源

Top