523. Continuous Subarray Sum

来源:互联网 发布:编程语言实现模式 pdf 编辑:程序博客网 时间:2024/05/18 11:26

参考链接:

点击打开链接

class Solution {public:    bool checkSubarraySum(vector<int>& nums, int k) {        if(nums.empty()){            return false;         }        //注意map用法,还有就是这个题目用的是余数        //有相同余数的从零到当前位置的两个序列相减就可以去掉余数,得到共有除数啦!        unordered_map<int,int> pos;        int len = nums.size();        int sum = 0 ;        pos[0] = -1;        for(int i = 0 ; i<len ; i++){            sum = sum + nums[i];            if(k) sum = sum %k;            if(pos.count(sum)){                int x = pos[sum];                if(i - x > 1){                    return true;                }            }            else{                pos[sum] = i ;            }        }        return false;    }};


原创粉丝点击