
LeetCode
LeetCode
yhwang-hub
还是什么也不写吧
展开
-
剑指 Offer 11. 旋转数组的最小数字
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0class Solution {public: int minArray(vector<int>& numbers) { int i = 0原创 2020-10-11 16:49:58 · 101 阅读 · 0 评论 -
LeetCode-反转链表
好理解的双指针定义两个指针: pre 和 cur ;pre 在前 cur在后。每次让 pre 的 next 指向 cur ,实现一次局部反转局部反转完成之后, pre 和 cur 同时往前移动一个位置循环上述过程,直至 pre 到达链表尾部class Solution {public: ListNode* reverseList(ListNode* head) { if(!head || !head->next) return head; ListN原创 2020-10-11 15:55:18 · 134 阅读 · 0 评论 -
剑指 Offer 12. 矩阵中的路径
请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。[[“a”,“b”,“c”,“e”],[“s”,“f”,“c”,“s”],[“a”,“d”,“e”,“e”]]但矩阵中不包含字符串“abfb”的路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格原创 2020-10-05 23:40:44 · 94 阅读 · 0 评论 -
剑指 Offer 09. 用两个栈实现队列
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:[“CQueue”,“deleteHead”,“appendTail”,“ap原创 2020-10-05 17:33:40 · 280 阅读 · 0 评论 -
剑指 Offer 59 - II. 队列的最大值
请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。若队列为空,pop_front 和 max_value 需要返回 -1示例 1:输入:[“MaxQueue”,“push_back”,“push_back”,“max_value”,“pop_front”,“max_value”][[],[1],[2],[],[],[]]输出: [null,null,null,2,1,2]示例原创 2020-10-05 14:26:02 · 133 阅读 · 0 评论 -
剑指 Offer 57 - II. 和为s的连续正数序列
什么是滑动窗口,以及如何用滑动窗口解这道题(C++/Java/Python)本题题解class Solution {public: vector<vector<int>> findContinuousSequence(int target) { int i=1,j=1,sum=0; vector<vector<int>>res; while(i<=target/2){原创 2020-10-05 11:23:24 · 101 阅读 · 0 评论 -
牛客网刷算法题的输入输出(C++)
内容简述该篇文章将对牛客网刷题中关于输入输出的一些问题作一个总结。每年互联网公司的招聘都必不可少会有算法题,因此平时很多人都会去一些刷题网站进行刷题来学习。这里面用的比较多的刷题网站是leetcode和牛客网。leetcode是一个专门用来刷算法题的网站,里面的算法题覆盖面很广,几乎各方面的编程都有,包括算法,多线程,数据库等,它的特点是题型多并且都有提供官方解答和网友的解答,可以学习得更加方便。在刷算法题时不必担心输入输出数据的问题,因为都是提供一个函数接口,因此练习者只需要实现功能就好了。牛客网是近转载 2020-07-31 18:10:16 · 6168 阅读 · 0 评论 -
回溯算法详解
解决一个回溯问题,实际上就是一个决策树的遍历过程。你只需要思考 3 个问题:1、路径:也就是已经做出的选择。2、选择列表:也就是你当前可以做的选择。3、结束条件:也就是到达决策树底层,无法再做选择的条件。如果你不理解这三个词语的解释,没关系,我们后面会用「全排列」和「N 皇后问题」这两个经典的回溯算法问题来帮你理解这些词语是什么意思,现在你先留着印象。代码方面,回溯算法的框架:result = []def backtrack(路径, 选择列表): if 满足结束条件: resul转载 2020-07-31 13:39:49 · 271 阅读 · 0 评论 -
动态规划之 KMP 算法详解
KMP 算法(Knuth-Morris-Pratt 算法)是一个著名的字符串匹配算法,效率很高,但是确实有点复杂。本文用pat表示模式串,长度为M,txt表示文本串,长度为N。KMP 算法是在txt中查找子串pat,如果存在,返回这个子串的起始索引,否则返回 -1。为什么认为 KMP 算法就是个动态规划问题呢,等会有解释。对于动态规划,之前多次强调了要明确dp数组的含义,而且同一个问题可能有不止一种定义dp数组含义的方法,不同的定义会有不同的解法。读者见过的 KMP 算法应该是,一波诡异的操作处理pa转载 2020-07-31 10:24:19 · 660 阅读 · 0 评论 -
leetcode-动态规划
目录198.打家劫舍746. 使用最小花费爬楼梯70. 爬楼梯392. 判断子序列53. 最大子序和121. 买卖股票的最佳时机1025. 除数博弈198.打家劫舍你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4原创 2020-07-29 17:40:54 · 680 阅读 · 0 评论 -
leetcode-位运算
目录231. 2的幂342. 4的幂面试题 05.01. 插入面试题 05.03. 翻转数位面试题 05.06. 整数转换405. 数字转换为十六进制数面试题 17.01. 不用加号的加法371. 两整数之和268. 缺失数字190. 颠倒二进制位693. 交替位二进制数389. 找不同169. 多数元素面试题 17.04. 消失的数字784. 字母大小写全排列1356. 根据数字二进制下 1 的数目排序剑指 Offer 39. 数组中出现次数超过一半的数字762. 二进制表示中质数个计算置位191. 位1原创 2020-07-25 08:58:33 · 850 阅读 · 0 评论 -
leetcode-树
111.二叉树的最小深度给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回它的最小深度 2.class Solution {public: int minDepth(TreeNode* root) { if(!root)return 0; if(root&原创 2020-07-25 00:15:31 · 144 阅读 · 0 评论 -
二叉搜索树的最近公共祖先
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]示例 1:输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8输出: 6解释: 节点 2 和原创 2020-07-24 08:17:32 · 126 阅读 · 0 评论 -
面试题68 - I. 二叉搜索树的最近公共祖先(迭代 / 递归,清晰图解)
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]示例 1:输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8输出: 6解释: 节点 2 和原创 2020-07-23 11:33:18 · 160 阅读 · 0 评论 -
leetcode-数组的度
给定一个非空且只包含非负数的整数数组 nums, 数组的度的定义是指数组里任一元素出现频数的最大值。你的任务是找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。示例 1:输入: [1, 2, 2, 3, 1]输出: 2解释:输入数组的度是2,因为元素1和2的出现频数最大,均为2.连续子数组里面拥有相同度的有如下所示:[1, 2, 2, 3, 1], [1, 2, 2, 3], [2, 2, 3, 1], [1, 2, 2], [2, 2, 3], [2, 2]最短连续子数组[原创 2020-07-20 09:22:32 · 252 阅读 · 0 评论 -
数据结构与算法 - 时空复杂度分析
一、为何需要分析算法复杂度挺多同学本科都学习过数据结构和算法这门课,但是有没有想过这门课到底是解决什么问题?科学家设计这些数据结构和算法是要干嘛?其实,最终的目的只有一个:让我们写的代码在计算机上运行的速度更快,使用的内存更省!,可是如何才能知道我们写的代码使用多少运行时间和内存呢?这就需要分析算法时间复杂度和空间复杂度,只有学会分析这 2 者,才能知道我们设计的算法到底有没有性能的提升,不然你费了很大功夫想了一个算法,却发现运行速度慢如乌龟,得不偿失。如果能够在运行算法之前就能知道算法大概的执行时间原创 2020-07-19 19:38:05 · 421 阅读 · 0 评论 -
leetcode-贪心算法
1.判断子序列给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。示例 1:s = “abc”, t = “ahbgdc”返回 true.示例 2:s = “axc”, t =原创 2020-07-19 09:30:52 · 395 阅读 · 0 评论 -
leetcode-把数字翻译成字符串
给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例 1:输入: 12258输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", “bwfi”, “bczi”, “mcfi"和"mzi”提示:0 <= num < 231动态规划思路和算法首先我们来通过一个例子理解一下这里「翻译」的过原创 2020-07-04 23:38:14 · 297 阅读 · 0 评论 -
leetcode-字符串的排列
输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入:s = “abc”输出:[“abc”,“acb”,“bac”,“bca”,“cab”,“cba”]限制:1 <= s 的长度 <= 8/*回溯法字符串的排列和数字的排列都属于回溯的经典问题回溯算法框架:解决一个问题,实际上就是一个决策树的遍历过程:路径:做出的选择选择列表:当前可以做的选择结束条件:到达决策树底层,无法再做选择的原创 2020-07-04 23:02:12 · 563 阅读 · 0 评论 -
leetcode-把数组排成最小的数
输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。示例 1:输入: [10,2]输出: “102”示例 2:输入: [3,30,34,5,9]输出: “3033459”提示:0 < nums.length <= 100说明:输出结果可能非常大,所以你需要返回一个字符串而不是整数拼接起来的数字可能会有前导 0,最后结果不需要去掉前导 0思路描述:首先我们要明白就是无论这些数字怎么取排列,形成的数字的位数是不变的那么就是高位的原创 2020-07-04 22:17:08 · 770 阅读 · 0 评论 -
leetcode-数组中数字出现的次数
一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。示例 1:输入:nums = [4,1,4,6]输出:[1,6] 或 [6,1]示例 2:输入:nums = [1,2,10,4,1,4,3,3]输出:[2,10] 或 [10,2]限制:2 <= nums.length <= 10000答案很简单:全员进行异或操作即可。考虑异或操作的性质:对于两个操作数的每一位,相同结果为 000原创 2020-07-04 16:00:18 · 2224 阅读 · 0 评论 -
leetcode-求1+2+…+n
求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例 1:输入: n = 3输出: 6示例 2:输入: n = 9输出: 45限制:1 <= n <= 10000递归思路和算法试想一下如果不加限制地使用递归的方法来实现这道题,相信大家都能很容易地给出下面的实现(以 C++ 为例):class Solution {public: int sumNums(int n) {原创 2020-07-04 15:18:21 · 297 阅读 · 0 评论 -
leetcode- 数值的整数次方
实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25class Solution {public: double myPow原创 2020-07-02 22:37:59 · 197 阅读 · 0 评论 -
leetcode-丑数
我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。说明:1 是丑数。n 不超过1690。直接代码速记吧,这道题的官方解释太长了我也没看懂…#include<iostream>#include<string>#include<vector>#include<原创 2020-06-30 21:19:01 · 249 阅读 · 0 评论 -
leetcode-表示数值的字符串
验证给定的字符串是否可以解释为十进制数字。例如:“0” => true" 0.1 " => true“abc” => false“1 a” => false“2e10” => true" -90e3 " => true" 1e" => false“e3” => false" 6e-1" => true" 99e2.5 " => false“53.5e93” => true" --6 " => false“原创 2020-06-30 18:04:33 · 221 阅读 · 0 评论 -
leetcode-字序列中某一位的数字
数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。请写一个函数,求任意第n位对应的数字。示例 1:输入:n = 3输出:3示例 2:输入:n = 11输出:0限制:0 <= n < 2^31我们通过观察,可以发现以下规律:对于第 n 位对应的数字,我们令这个数字对应的数为 target,然后分三步进行。首先找到这个数字对应的数是几位数,用 digits 表示;原创 2020-06-30 13:29:59 · 2048 阅读 · 1 评论 -
leetcode-把字符串转换成整数
写一个函数 StrToInt,实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽略,它们对于函数不应该造成影响。注意:假如该字符串中的第一个非空原创 2020-06-30 12:34:24 · 192 阅读 · 0 评论 -
leetcode-1~n 整数中 1 出现的次数(清晰图解)
输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。示例 1:输入:n = 12输出:5示例 2:输入:n = 13输出:6限制:1 <= n < 2^31#include<iostream>#include<string>#include<vector>#include<algorithm>#include<原创 2020-06-30 09:45:16 · 1224 阅读 · 0 评论 -
leetcode-最长不含重复字符的子字符串
请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。提原创 2020-06-28 19:56:53 · 227 阅读 · 0 评论 -
leetcode-剪绳子
给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m] 。请问 k[0]k[1]…*k[m] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1示例 2:原创 2020-06-28 16:32:53 · 209 阅读 · 0 评论 -
leetcode-多边形三角剖分的最低得分
给定 N,想象一个凸 N 边多边形,其顶点按顺时针顺序依次标记为 A[0], A[i], …, A[N-1]。假设您将多边形剖分为 N-2 个三角形。对于每个三角形,该三角形的值是顶点标记的乘积,三角剖分的分数是进行三角剖分后所有 N-2 个三角形的值之和。返回多边形进行三角剖分后可以得到的最低分。示例 1:输入:[1,2,3]输出:6解释:多边形已经三角化,唯一三角形的分数为 6。示例 2:输入:[3,7,4,5]输出:144解释:有两种三角剖分,可能得分分别为:375 + 457原创 2020-06-28 15:20:49 · 298 阅读 · 0 评论 -
leetcode-单词拆分
给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = “leetcode”, wordDict = [“leet”, “code”]输出: true解释: 返回 true 因为 “leetcode” 可以被拆分成 “leet code”。示例 2:输入: s = “applepenapple”, wordDict =原创 2020-06-28 07:41:59 · 661 阅读 · 0 评论 -
leetcde-剪绳子
给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 3原创 2020-06-27 23:28:58 · 181 阅读 · 0 评论 -
leetcode-礼物的最大价值
在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?示例 1:输入:[[1,3,1],[1,5,1],[4,2,1]]输出: 12解释: 路径 1→3→5→2→1 可以拿到最多价值的礼物提示:0 < grid.length <= 2000 < grid[0].length &l原创 2020-06-27 18:22:44 · 279 阅读 · 0 评论 -
leetcode-最大的以 1 为边界的正方形
给你一个由若干 0 和 1 组成的二维网格 grid,请你找出边界全部由 1 组成的最大 正方形 子网格,并返回该子网格中的元素数量。如果不存在,则返回 0。示例 1:输入:grid = [[1,1,1],[1,0,1],[1,1,1]]输出:9示例 2:输入:grid = [[1,1,0,0]]输出:1提示:1 <= grid.length <= 1001 <= grid[0].length <= 100grid[i][j] 为 0 或 1class Solu原创 2020-06-27 17:35:51 · 202 阅读 · 0 评论 -
经典动态规划:最大子数组问题
思路分析其实第一次看到这道题,我首先想到的是滑动窗口算法,因为我们前文说过嘛,滑动窗口算法就是专门处理子串/子数组问题的,这里不就是子数组问题么?但是,稍加分析就发现,这道题还不能用滑动窗口算法,因为数组中的数字可以是负数。滑动窗口算法无非就是双指针形成的窗口扫描整个数组/子串,但关键是,你得清楚地知道什么时候应该移动右侧指针来扩大窗口,什么时候移动左侧指针来减小窗口。而对于这道题目,你想想,当窗口扩大的时候可能遇到负数,窗口中的值也就可能增加也可能减少,这种情况下不知道什么时机去收缩左侧窗口,也.原创 2020-06-27 16:22:31 · 612 阅读 · 0 评论 -
leetcode-找两个和为目标值且不重叠的子数组
给你一个整数数组 arr 和一个整数值 target 。请你在 arr 中找 两个互不重叠的子数组 且它们的和都等于 target 。可能会有多种方案,请你返回满足要求的两个子数组长度和的 最小值 。请返回满足要求的最小长度和,如果无法找到这样的两个子数组,请返回 -1 。示例 1:输入:arr = [3,2,2,4,3], target = 3输出:2解释:只有两个子数组和为 3 ([3] 和 [3])。它们的长度和为 2 。示例 2:输入:arr = [7,3,4,7], target原创 2020-06-27 15:47:22 · 795 阅读 · 0 评论 -
如何寻找最长回文子串
回文串是面试常常遇到的问题(虽然问题本身没啥意义),本文就告诉你回文串问题的核心思想是什么。首先,明确一下什:回文串就是正着读和反着读都一样的字符串。比如说字符串 aba 和 abba 都是回文串,因为它们对称,反过来还是和本身一样。反之,字符串 abac 就不是回文串。可以看到回文串的的长度可能是奇数,也可能是偶数,这就添加了回文串问题的难度,解决该类问题的核心是双指针。下面就通过一道最长回文子串的问题来具体理解一下回文串问题:string longestPalindrome(string s) {}一原创 2020-06-26 21:22:12 · 360 阅读 · 0 评论 -
经典动态规划:打家劫舍系列问题
打家劫舍系列总共有三道,难度设计非常合理,层层递进。第一道是比较标准的动态规划问题,而第二道融入了环形数组的条件,第三道更绝,让盗贼在二叉树上打劫.House Robber | public int rob(int[] nums);题目很容易理解,而且动态规划的特征很明显。解决动态规划问题就是找「状态」和「选择」。假想你就是这个专业强盗,从左到右走过这一排房子,在每间房子前都有两种选择:抢或者不抢。如果你抢了这间房子,那么你肯定不能抢相邻的下一间房子了,只能从下下间房子开始做选择。如果你不抢这原创 2020-06-26 20:17:35 · 758 阅读 · 0 评论 -
leetcode-连续的子数组和
给定一个包含 非负数 的数组和一个目标 整数 k,编写一个函数来判断该数组是否含有连续的子数组,其大小至少为 2,且总和为 k 的倍数,即总和为 n*k,其中 n 也是一个整数。示例 1:输入:[23,2,4,6,7], k = 6输出:True解释:[2,4] 是一个大小为 2 的子数组,并且和为 6。示例 2:输入:[23,2,6,4,7], k = 6输出:True解释:[23,2,6,4,7]是大小为 5 的子数组,并且和为 42。说明:数组的长度不会超过 10,000 。你可原创 2020-06-26 15:53:40 · 313 阅读 · 0 评论