Subarray Sum
来源:互联网 发布:淘宝微淘评论设置 编辑:程序博客网 时间:2024/05/16 11:15
此题两种做法,暴力做法n方,如下注释部分,但当中还是有两个coner case没想到,只有一个0,和数组当中出现一个0
优化的方法是用map,先sum = nums[i] + sum; 再if (map.containsKey(sum)) ,这个当中的思维,算是技巧,也是基本功。
/**
* @param nums: A list of integers* @return: A list of integers includes the index of the first number
* and the index of the last number
*/
public ArrayList<Integer> subarraySum(int[] nums) {
// write your code here
ArrayList<Integer> results = new ArrayList<>();
Map<Integer, Integer> map = new HashMap<>();
map.put(0, -1);
int sum = 0;
for (int i = 0; i < nums.length; i++) {
sum = nums[i] + sum;
//1 if (map.contains(sum)) {
if (map.containsKey(sum)) {
results.add(map.get(sum) + 1);
results.add(i);
return results;
}
map.put(sum, i);
}
return results;
// ArrayList<Integer> results = new ArrayList<>();
// if (nums == null || nums.length == 0) {
// return results;
// }
// ////1
// if (nums.length == 1 && nums[0] == 0) {
// results.add(0);
// results.add(0);
// return results;
// }
// ////1
// for (int i = 0; i < nums.length - 1; i++) {
// int sum = nums[i];
// ////2
// if (sum == 0) {
// results.add(i);
// results.add(i);
// return results;
// }
// ////2
// for (int j = i + 1; j < nums.length; j++) {
// sum = sum + nums[j];
// if (sum == 0) {
// results.add(i);
// results.add(j);
// return results;
// }
// }
// }
// return results;
}
0 0
- Subarray Sum
- Subarray Sum
- subarray sum
- Subarray Sum
- Subarray Sum
- Max-Sum Subarray
- Minimum Size Subarray Sum
- Minimum Size Subarray Sum
- Minimum Size Subarray Sum
- Minimum size subarray sum
- leetcode_Minimum Size Subarray Sum
- Minimum Size Subarray Sum
- Minimum Size Subarray Sum
- lintcode:Continuous Subarray Sum
- Minimum Size Subarray Sum
- Minimum Size Subarray Sum
- Minimum Size Subarray Sum
- Minimum Size Subarray Sum
- POJ 1037 A decorative fence 动态规划
- Vim配置StepbyStep
- 2016 UESTC Traing Search Algorithm &String Problem N 简单的双向搜索
- 一点资源【2、一款4412开发板的资料可参考下】
- java教程:开发┃java学习中的13个核心技术
- Subarray Sum
- vofuria的开发(2)利用android studio+vuforia搭建AR开发环境
- 一点资源【3、linux视频】
- 【2120】数据结构实验之链表五:单链表的拆分
- Hibernate 配置文件:hibernate.cfg.xml
- 递归
- java入门、java学习:菜鸟入门Java程序学习的要点
- Java基本程序设计
- 用ScrollView设置导航栏滚动时图