LeetCode:#907子数组的最小值之和
2022/2/4 6:15:33
本文主要是介绍LeetCode:#907子数组的最小值之和,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
给定一个整数数组 arr,找到 min(b) 的总和,其中 b 的范围为 arr 的每个(连续)子数组。
由于答案可能很大,因此 返回答案模 10^9 + 7 。
示例 1:
输入:arr = [3,1,2,4]
输出:17
解释:
子数组为 [3],[1],[2],[4],[3,1],[1,2],[2,4],[3,1,2],[1,2,4],[3,1,2,4]。
最小值为 3,1,2,4,1,1,2,1,1,1,和为 17。
示例 2:输入:arr = [11,81,94,43,3]
输出:444
提示:
1 <= arr.length <= 3 * 104
1 <= arr[i] <= 3 * 104
三次循环的方式效率太低会时间超时
class Solution { public int sumSubarrayMins(int[] arr) { return myMain(arr); } public int myMain(int[] arr) { long res = 0; long mod = 1000000007; for(int i=1; i <= arr.length; i++){ //i控制分组 for (int j=0; j <=arr.length-i; j++) { //每次假设最小的是分组的第一个 int min = j; for (int k = j; k < j+i; k++) { //每个分组进行一次比较 找出最小的 // System.out.print(arr[k]); if (arr[min] > arr[k]) { min = k; } } res += arr[min]; // System.out.println(" " + " min:"+arr[min]); } } return (int)(res % mod); } }
这篇关于LeetCode:#907子数组的最小值之和的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享