【LeetCode】523. 连续的子数组和 解题报告 (python)_暮雨凉初透的博客-程序员宝宝

技术标签: LeetCode  

原题地址:https://leetcode-cn.com/problems/continuous-subarray-sum/submissions/

题目描述:

给定一个包含非负数的数组和一个目标整数 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。
你可以认为所有数字总和在 32 位有符号整数范围内。

 

解题方案:

class Solution:
    def checkSubarraySum(self, nums: List[int], k: int) -> bool:
        d, s = {0:-1}, 0
        for i in range(len(nums)):
            s = (s + nums[i]) % k if k else s + nums[i]
            if s in d and i - d[s] > 1: return True
            d.setdefault(s, i)
        return False
        

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_32805671/article/details/102686138

智能推荐

VS 2019中利用C#语言在.Net Framework 4.5框架上开发简易串口发送数据软件_吮指原味张的博客-程序员宝宝

0. 前言前置项目为:VS 2019中利用C#语言在.Net Framework 4.5框架上开发简易倒计时器1. 项目实现1.1 配置Form1.cs[设计]文件在Form1.cs[设计]中放入如下控件,并在对应的属性框中设置好属性。拖入组件serialPort。在serialPort的属性栏内,可以设置波特率、串口号等属性。本程序采用的波特率为4800,串口号为COM4。1.2 配置Form1.cs文件Form1.cs的代码如下所示using System;using Syst

win10桌面计算机打不开,传授win10系统电脑桌面图标打不开怎么办啊?_西山居游戏的博客-程序员宝宝

电脑win10桌面图标打不开怎么回事呢?最近再贴吧看到很多用户出现桌面图标的情况,那么造成这样情况可能是exe文件的关联损坏了,或者是系统中病毒导致的,那么下面让小编带你一起解决下win10电脑桌面图标打不开的问题吧。使用win10系统的朋友最近发现鼠标双击桌面的软件图标无法打开以及没反应,那么遇到这样的情况是怎么回事呢?面对电脑桌面图标无缘无故打不开,除了电脑中毒之外还有什么原因呢?下面让小编带...

Linux随笔--基础知识(一)_YANXS1的博客-程序员宝宝

一:Linux介绍Linux是一开源的,任何个人都可以使用并自由的修改和发布其底层源码,它继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux发行版:Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。目前流行的主要有:Ubuntu、RedHat(常用)、CentOS、Debian、Fedora、SuSE、OpenSUSE;二:安装Linux下载地址:https://www.centos.org/download/推荐下载版本:CentO

poj 3468 A Simple Problem with Integers 线段树模板区间更新_chen_minghui的博客-程序员宝宝

题意:区间更新,输出查询结果带有延时标记的区间更新更到你时就停住,用到你时候向下更:我的理解:例如更新[0-3],更新时找到[0-2],[3-3]这两个区间,修改整个区间的信息,如若区间结点的值代表整个区间的最小值,对[0-3]这个区间的操作是每个元素加1,那么更新时只需要修改[0-2]和[3-3]结点的值,两个节点最值加1,并给它们加上标记(它更到这儿就停止了,叶子节点并

Handler使用技巧_lidongxiu0714的博客-程序员宝宝

1Handler 如何初始化handler一般是使用方式是在主线程Handler handler = new Handler();初始化Handler,然后就可以愉快的使用了,此时的handler可以用于更新ui线程,在handleMessage中进行的操作相当于在ui线程。2 Handler一定要在主线程实例化吗?尝试在子线程中初始化handler是无法使用的,会报下面的错误: java...

搭建docker内网私服(docker-registry with nginx&ssl on centos)_ztsinghua的博客-程序员宝宝

主要思路:1. Docker Registry 说明关于如何创建和使用本地仓库,其实已经有很多文章介绍了。因为docker技术正处于发展和完善阶段,所以有些文章要么内容已经过时,要么给出了错误的配置,导致无法正常创建仓库。本文记录的是个人完整的搭建过程,docker version为1.1.2。官方提供了Docker Hub网站来作为一个公开的集中仓库。然而

随便推点

java实现简单的单点登录(2)-Web SSO 的样例_cndone的博客-程序员宝宝

3.1 Web SSO 的样例 根据上面的原理,我用J2EE的技术(JSP和Servlet)完成了一个具有Web-SSO的简单样例。样例包含一个身份认证的服务器和两个简单的Web应用,使得这两个 Web应用通过统一的身份认证服务来完成Web-SSO的功能。此样例所有的源代码和二进制代码都可以从网站地址http://gceclub.sun.com.cn/wangyu/ 下载。  ...

递归获取文件夹里所有的文件和目录,并统计出文件和目录数量_可乐混绿茶.的博客-程序员宝宝

递归获取文件夹里所有的文件和目录,并统计出文件和目录数量private static int dirNum; // 目录数量private static int fileNum; // 文件数量 public void loadFile(File file){ // 判断对象是否为空 Optional<File> fileParent= Optional.ofNullable(file); if (fileParent.get().

vue el-tabs切换速度慢_voicezhangyx的博客-程序员宝宝

使用elementui里面的组件时,要用<el-row> <el-col :span="数字"></el-col> </el-row> 包裹起来尝试一下,看是否有效,如下图还有个方法是切换element-ui 的版本 2.11.1element在2.10.1以下不会出现卡死现象。但是版本太低(低于2.9.3)的话,有些方便的组件都用不到了。比如avatar头像。...

学习笔记(01):bash shell全面深入技巧与实战进阶详解-bash特性之输入输出重定向和管道..._lilei_pisces的博客-程序员宝宝

本课程为全新马哥linux全套系列课程之一--Linux基础入门和架构了解,从Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!...

从输入URL到显示页面,发生了什么?_Kid thePhantom Thief的博客-程序员宝宝

从输入URL到显示页面,发生了什么?正如文中开头写的,当我们在地址栏输入URL之后,浏览器会发生一系列的行为,但是我们根本看不到,所以导致对许多内部原理不清楚,作为一个迈向geek程序员的路上还是要知其然知其所以然的,凡事还是要弄懂原理,这样会对自己有一个较大的提升,希望大家共勉。好了,闲话不多说,开始上干货了:(由于其中涉及到许多复杂知识,单列出来都能说好多,暂时只说一个大概的框架,不考虑很多复

高通sdm660普通gpio模拟I2C功能_weixin_32104133的博客-程序员宝宝_高通gpio模拟i2c

高通sdm660普通gpio模拟I2C功能sdm660-blsp.dtsi中配置如下:aliases { ... i2c9 = &i2c_9;}i2c_9: i2c_9 { compatible = "i2c-gpio"; #address-cells = <1>; #size-cells = <0>; gpios= <&tlmm...

推荐文章

热门文章

相关标签