[LeetCode] Continuous Subarray Sum
来源:互联网 发布:scala java 对比 编辑:程序博客网 时间:2024/06/05 08:03
Given a list of non-negative numbers and a target integer k, write a function to check if the array has a continuous subarray of size at least 2 that sums up to the multiple of k, that is, sums up to n*k where n is also an integer.
Example 1:
Input: [23, 2, 4, 6, 7], k=6Output: TrueExplanation: Because [2, 4] is a continuous subarray of size 2 and sums up to 6.
Example 2:
Input: [23, 2, 6, 4, 7], k=6Output: TrueExplanation: Because [23, 2, 6, 4, 7] is an continuous subarray of size 5 and sums up to 42.
Note:
- The length of the array won't exceed 10,000.
- You may assume the sum of all the numbers is in the range of a signed 32-bit integer.
方法一:o(n**2)
public class Solution { public boolean checkSubarraySum(int[] nums, int k) { if(nums.length<2) return false; for(int i=0;i<nums.length;i++){ int sum=nums[i]; for(int j=i+1;j<nums.length;j++){ sum+=nums[j]; if(sum==0&&k==0||k!=0&&sum%k==0) return true; } } return false; }}方法二: 时间复杂度o(n)
public class Solution2 { public boolean checkSubarraySum(int[] nums, int k) { if(nums.length<2) return false; int sum=0; HashMap<Integer,Integer> map=new HashMap<Integer,Integer>(); map.put(0,-1);//注意 for(int i=0;i<nums.length;i++){ sum+=nums[i]; int t=k!=0?sum%k:sum; if(map.containsKey(t)&&i-map.get(t)>1) return true; else if(!map.containsKey(t)) map.put(t, i); } return false; } public static void main(String[] args) {Solution2 s=new Solution2();System.out.println(s.checkSubarraySum(new int[]{0,0}, 0)); }}
阅读全文
1 0
- [LeetCode]Continuous Subarray Sum
- [LeetCode] Continuous Subarray Sum
- Leetcode-523. Continuous Subarray Sum
- Leetcode 523. Continuous Subarray Sum
- LeetCode: 523. Continuous Subarray Sum
- Leetcode 523. Continuous Subarray Sum
- [LeetCode]523. Continuous Subarray Sum
- LeetCode 523. Continuous Subarray Sum
- [LeetCode OJ]Continuous Subarray Sum
- leetcode-523. Continuous Subarray Sum
- Leetcode 523. Continuous Subarray Sum
- 【Leetcode】523. Continuous Subarray Sum
- [leetcode]523. Continuous Subarray Sum
- leetcode--523. Continuous Subarray Sum
- leetcode 523. Continuous Subarray Sum
- LeetCode 523. Continuous Subarray Sum
- Leetcode:523. Continuous Subarray Sum
- [LeetCode] 523. Continuous Subarray Sum
- Radar Installation poj 贪心
- 磁盘处理
- H.264小结
- 在B程序中访问A程序的ConentProvider
- MyBatis(一) 不使用MyBatis做一个简单的查询
- [LeetCode] Continuous Subarray Sum
- 项目推进问题
- 8、linux 中的打包、压缩和解压
- 警告: 最后一个参数使用了不准确的变量类型的 varargs 方法的非 varargs 调用
- Ajax动态滚动加载数据遇到的错误:parsererror
- xml文件的概述与应用场景
- python之函数
- hackerrank>Dashboard>C++>STL>Deque-STL
- =