题目描述
给你一个整数数组 nums
和一个整数 k
,请你统计并返回 该数组中和为 k
的子数组的个数 。
子数组 是数组中元素的连续非空序列。
示例 1:
输入:
nums = [1, 1, 1]
,k = 2
输出:2
示例 2:
输入:
nums = [1, 2, 3]
,k = 3
输出:2
提示:
1 <= nums.length <= 2 * 10^4
-1000 <= nums[i] <= 1000
-10^7 <= k <= 10^7
给定一个整数数组 nums
,处理以下类型的多个查询:
计算索引 left
和 right
(包含 left
和 right
)之间的 nums
元素的和 ,其中 left <= right
。
实现 NumArray
类:
NumArray(int[] nums)
使用数组 nums
初始化对象int sumRange(int i, int j)
返回数组 nums
中索引 left
和 right
之间的元素的总和 ,包含 left
和 right
两点(也就是 nums[left] + nums[left + 1] + ... + nums[right]
)示例 1:
输入:
["NumArray", "sumRange", "sumRange", "sumRange"]
[[[-2, 0, 3, -5, 2, -1]], [0, 2], [2, 5], [0, 5]]
输出:[null, 1, -1, -3]
解释:NumArray numArray = new NumArray([-2, 0, 3, -5, 2, -1]);
numArray.sumRange(0, 2); // return 1 ((-2) + 0 + 3)
numArray.sumRange(2, 5); // return -1 (3 + (-5) + 2 + (-1))
numArray.sumRange(0, 5); // return -3 ((-2) + 0 + 3 + (-5) + 2 + (-1))
提示:
1 <= nums.length <= 10^4
-10^5 <= nums[i] <= 10^5
0 <= i <= j < nums.length
10*4
次 sumRange
方法给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的所有字母得到的一个新单词。
示例 1:
输入:
strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
输出:[["bat"], ["nat", "tan"], ["ate", "eat", "tea"]]
示例 2:
输入:
strs = [""]
输出:[[""]]
示例 3:
输入:
strs = ["a"]
输出:[["a"]]
提示:
1 <= strs.length <= 104
0 <= strs[i].length <= 100
strs[i]
仅包含小写字母给你两个正整数 n
和 m
。现定义两个整数 num1
和 num2
,如下所示:
num1
:范围 [1, n]
内所有 无法被 m
整除 的整数之和。num2
:范围 [1, n]
内所有 能够被 m
整除 的整数之和。
返回整数 num1 - num2
。
示例 1:
输入:n = 10, m = 3
输出:19
解释:在这个示例中:
范围[1, 10]
内无法被 3 整除的整数为[1, 2, 4, 5, 7, 8, 10]
,num1 = 这些整数之和 = 37 。
范围[1, 10]
内能够被 3 整除的整数为[3, 6, 9]
,num2 = 这些整数之和 = 18 。
返回 37 - 18 = 19 作为答案。
示例 2:
输入:n = 5, m = 6
输出:15
解释:在这个示例中:
范围[1, 5]
内无法被 6 整除的整数为[1, 2, 3, 4, 5]
,num1 = 这些整数之和 = 15 。
范围[1, 5]
内能够被 6 整除的整数为[]
,num2 = 这些整数之和 = 0 。
返回 15 - 0 = 15 作为答案。
示例 3:
输入:n = 5, m = 1
输出:-15
解释:在这个示例中:
范围[1, 5]
内无法被 1 整除的整数为[]
,num1 = 这些整数之和 = 0 。
范围[1, 5]
内能够被 1 整除的整数为[1, 2, 3, 4, 5]
,num2 = 这些整数之和 = 15 。
返回 0 - 15 = -15 作为答案。
提示:
1 <= n, m <= 1000
给你一个字符串数组 words
。words
中每个元素都是一个包含两个小写英文字母的单词。请你从 words
中选择一些元素并按任意顺序连接它们,并得到一个尽可能长的回文串 。每个元素至多只能使用一次。请你返回你能得到的最长回文串的长度 。如果没办法得到任何一个回文串,请你返回 0
。
**说明:**回文串指的是从前往后和从后往前读一样的字符串。
示例 1:
输入:
words = ["lc", "cl", "gg"]
输出:6
解释:一个最长的回文串为"lc" + "gg" + "cl" = "lcggcl"
,长度为 6 。"clgglc"
是另一个可以得到的最长回文串。
示例 2:
输入:
words = ["ab", "ty", "yt", "lc", "cl", "ab"]
输出:8
解释:最长回文串是"ty" + "lc" + "cl" + "yt" = "tylcclyt"
,长度为 8 。"lcyttycl"
是另一个可以得到的最长回文串。
示例 3:
输入:
words = ["cc", "ll", "xx"]
输出:2
解释:最长回文串是"cc"
,长度为 2 。"ll"
是另一个可以得到的最长回文串。"xx"
也是。
提示:
1 <= words.length <= 10^5
words[i].length == 2
words[i]
仅包含小写英文字母。给定两个字符串 s
和 p
,找到 s
中所有 p
的 异位词
的子串,返回这些子串的起始索引。不考虑答案输出的顺序。
字母异位词 是通过重新排列不同单词或短语的字母而形成的单词或短语,并使用所有原字母一次。
示例 1:
输入:
s = "cbaebabacd"
,p = "abc"
输出:[0, 6]
解释:
起始索引等于0
的子串是"cba"
, 它是"abc"
的异位词。
起始索引等于6
的子串是"bac"
, 它是"abc"
的异位词。
示例 2:
输入:
s = "abab"
,p = "ab"
输出:[0, 1, 2]
解释:
起始索引等于0
的子串是"ab"
, 它是"ab"
的异位词。
起始索引等于1
的子串是"ba"
, 它是"ab"
的异位词。
起始索引等于2
的子串是"ab"
, 它是"ab"
的异位词。
提示:
1 <= s.length
, p.length <= 3 * 10^4
s
和 p
仅包含小写字母