• 子数组之和=0


    [抄题]:

    给定一个整数数组,找到和为零的子数组。你的代码应该返回满足要求的子数组的起始位置和结束位置.给出 [-3, 1, 2, -3, 4],返回[0, 2] 或者 [1, 3].

    [思维问题]:

    老是想着数组双重循环用枚举法,想不到任何别的数据结构。

    用hashmap的好处:一个数据结构可以包括两个变量,index及其sum。两个变量都要处理时,用hashmap。

    利用哈希图的index的唯一性,可以检测sum是不是重复,间接判断和是否为零。(上次是利用index的唯一性,每次都在value上减100,从而统计重复出现的次数。)

    [一句话思路]:

    用index来存和,如果index重复,则和为零。

    [画图]:

    [一刷]:

    1. 找到后还必须添加到hashmap中,继续找。
    2. ArrayList<Integer> ans = new ArrayList<Integer>();尖括号里是数据类型,要写integer。接口和数据类型一样,免得麻烦。数据类型都是大写开头
    3. map对应的是put函数。
    4. list类型的函数必须要return东西,return ans结果list就行。
    5.  for(int i = 0; i < nums.length; i++),不用减一!!

    [总结]:

    [复杂度]:

    n/n

    [英文数据结构]:

    用hashmap的好处:一个数据结构可以包括两个变量,index及其sum。两个变量都要处理时,用hashmap。

    利用哈希图的index的唯一性,可以检测sum是不是重复,间接判断和是否为零。(上次是利用index的唯一性,每次都在value上减100,从而统计重复出现的次数。)

    返回array不行:必须初始化,但是初始化哪一位都不一定求和为0。利用arraylist不用初始化的优点,找到一个是一个,动态添加。

    [其他解法]:

    [题目变变变]:

    closest,定义了一个结构体,没看懂

    public class Solution {
        /*
         * @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 List<Integer> subarraySum(int[] nums) {
            // write your code here
            if (nums.length == 0 || nums == null) {
                return null;
            }
            
            int sum = 0;
            ArrayList<Integer> ans = new ArrayList<Integer>();
            HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
            
            map.put(0, -1);
            for(int i = 0; i < nums.length; i++) {
                sum += nums[i];
                if (map.containsKey(sum)) {
                    ans.add(map.get(sum) + 1);
                    ans.add(i);
                    
                    return ans;
                }
                map.put(sum,i);
            }
            return ans;
        }
    }
    View Code
  • 相关阅读:
    Linux系统 关机/重启/用户切换/注销,用户管理(用户创建/修改,用户组增加/删除),Linux中 / 和 ~ 的区别
    jQuery的ajax技术
    jQuery事件
    动态轮播图
    焦点式轮播图
    小米官网案例
    选项卡嵌套
    jQuery筛选方法
    导航条案例
    jQuery位置属性
  • 原文地址:https://www.cnblogs.com/immiao0319/p/8026388.html
Copyright © 2020-2023  润新知