当前位置: 首页 > news >正文

Lintcode: Minimum Subarray 解题报告

Minimum Subarray

原题链接: http://lintcode.com/zh-cn/problem/minimum-subarray/#

Given an array of integers, find the subarray with smallest sum.

Return the sum of the subarray.

注意

The subarray should contain at least one integer.

样例

For [1, -1, -2, 1], return -3

标签 Expand

SOLUTION 1:

1. 我们把整个array * -1,把它转化为求最大和的题目。

2. 然后我们可以使用Sliding window的方法来做。记录一个sum,如果发现sum<0 则丢弃,否则不断把当前的值累加到sum,

3. 每计算一次sum,求一次max.

4. 返回-max即可。

 1 public class Solution {
 2     /**
 3      * @param nums: a list of integers
 4      * @return: A integer indicate the sum of minimum subarray
 5      */
 6     public int minSubArray(ArrayList<Integer> nums) {
 7         // write your code
 8         
 9         int len = nums.size();
10         
11         int max = Integer.MIN_VALUE;
12         int sum = 0;
13         for (int i = 0; i < len; i++) {
14             if (sum < 0) {
15                 sum = -nums.get(i);
16             } else {
17                 sum += -nums.get(i);
18             }
19             
20             max = Math.max(max, sum);
21         }
22         
23         return -max;
24     }
25 }
View Code

GITHUB:

https://github.com/yuzhangcmu/LeetCode_algorithm/blob/master/lintcode/array/SubarraySum.java

 

相关文章:

  • laravel ORM get() first()
  • h5 扫描二维码打开app和点击下载功能的实现
  • 云时代重新定义主机安全:自动化安全闭环是核心
  • C#利用HttpWebRequest进行post请求的示例(HTTPS)
  • windows中结束线程的方式
  • mogodb
  • 22次课(yum更换国内源、yum下载rpm包、源码包安装、把源码包打包成rpm包)
  • mybatis 延迟加载
  • Python基础学习四 列表、元组、字典、集合
  • Mysql添加更新删除数据-表
  • 如何在本地测试Fabric Code
  • 状态码 301 与 302的区别
  • RHEL6 搭建LVS/DR 负载均衡集群 案例
  • “-Xmx1024m -Xms1024m -Xmn512m -Xss256k”——Java运行参数
  • Linux权限详解
  • 10个最佳ES6特性 ES7与ES8的特性
  • Create React App 使用
  • CSS3 变换
  • Java反射-动态类加载和重新加载
  • SpiderData 2019年2月13日 DApp数据排行榜
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 大整数乘法-表格法
  • 聊聊sentinel的DegradeSlot
  • 普通函数和构造函数的区别
  • 实习面试笔记
  • 听说你叫Java(二)–Servlet请求
  • 通过git安装npm私有模块
  • 推荐一个React的管理后台框架
  • 项目管理碎碎念系列之一:干系人管理
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • puppet连载22:define用法
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​HTTP与HTTPS:网络通信的安全卫士
  • (145)光线追踪距离场柔和阴影
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (转)Google的Objective-C编码规范
  • (转)http协议
  • (转)socket Aio demo
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • .gitignore文件—git忽略文件
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .net 后台导出excel ,word
  • .NET 使用配置文件
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • [16/N]论得趣
  • [CSS]盒子模型
  • [FFmpeg学习]从视频中获取图片
  • [Fri 26 Jun 2015 ~ Thu 2 Jul 2015] Deep Learning in arxiv
  • [IDF]摩斯密码