牛客上一个大佬的题解链接
题目描述
我们定义一个矩阵为“好矩阵”,当且仅当该矩阵所有22的子矩阵数字和为偶数。
例如

是好矩阵,两个22的子矩阵的和分别为8和12.
请问n行m列,矩阵中每个数均在[1, x]范围内的好矩阵有多少种?由于答案过大,请对
1
0
9
+
7
10^9+7
109+7取模。
数据范围:
2
≤
n
,
m
,
x
≤
1
0
9
2 \le n,m,x \le 10^9
2≤n,m,x≤109
保证x为偶数。
示例1
输入
2, 2, 2
输出
8

题目描述
给定一个数组,请你编写一个函数,返回元素乘积末尾零数量大于等于x的连续子数组数量。
答案可能很大,请将答案对
1
0
9
+
7
10^9+7
109+7取模再返回。
数组长度不超过
1
0
5
10^5
105。
数组元素,x均为不超过
1
0
9
10^9
109的正整数。
示例1
输入
[5, 2, 3, 50, 4], 2
输出
6
说明
共有以下6个合法连续子数组:
[5, 2, 3, 50],乘积为1500,末尾有2个零。
[5, 2, 3, 50, 4],乘积为6000,末尾有3个零。
[2, 3, 50],乘积为300,末尾有2个零。
[2, 3, 50, 4],乘积为1200,末尾有2个零。
[3, 50, 4],乘积为600,末尾有2个零。
[50, 4],乘积为200,末尾有2个零。
代码
100%,双指针+滑动窗口
class Solution:
def getSubarrayNum(self , a: list, x: int) -> int:
# write code here
MOD = pow(10, x)
def adjust(val):
if val>=MOD and val%MOD==0:
return True
else:
return False
n = len(a)
ans = 0
l, r = 0, 0
num = 1
while r<n:
while not adjust(num) and r<n:
num *= a[r]
r += 1
while adjust(num) and l<r:
# print(l, r)
ans += n-r+1
num //= a[l]
l += 1
ans %= (10**9+7)
return ans
if __name__=='__main__':
test_case = Solution()
print(test_case.getSubarrayNum([5, 2, 3, 50, 4], 2))
题目描述
给定一个只包含’0’和’1’两种字符的字符串,每次操作可以选择相邻的两个字符,将它们同时变成’0’或者同时变成’1’。
请问最少多少次操作后,所有的字符都相同?
字符串长度不超过1000。
示例1
输入
“1001101”
输出
2
代码
100%,模拟+贪心?
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param str string字符串
# @return int整型
#
class Solution:
def get_res(par_data, target):
data = [ch for ch in par_data]
ans = 0
idx = 0
n = len(data)
while idx<n:
if data[idx]!=target:
if idx+1<n:
data[idx] = target
data[idx+1] = target
else:
data[idx] = target
ans += 1
idx += 1
return ans
def minOperations(self , str: str) -> int:
# write code here
data = [ch for ch in str]
num1 = self.get_res(data, '0')
num2 = self.get_res(data, '1')
return max(num1, num2)
我正在使用SublimeText2,同时遵循MichaelHartl的RubyonRails教程。可以在http://ruby.railstutorial.org/book/ruby-on-rails-tutorial找到我所指的教程的具体部分。(ctrl+F“list5.26”)。我能够创建规范/支持文件。但是,在尝试创建spec/support/utilities.rb文件时,我收到消息“无法保存~/rails_projects/sample_app/spec/support/utilities.rb”。有人知道为什么会这样吗?SublimeText论坛上有人似乎遇到了完全相同的问
整理|王启隆透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。今天是2023年4月26日,在2017年的今天,中国首艘国产001A型航空母舰在大连完成了下水,从开工到下水,历时3年多时间。回首过去,眺望未来,在科技历史上的每个4月26日里,还发生过哪些影响深远的关键事件呢?1938年4月26日:编程校验领域图灵奖得主ManuelBlum出生曼纽尔·布卢姆(ManuelBlum)出生于1938年4月26日,他是委内瑞拉的计算机科学家、卡内基梅隆大学的教授,因对计算复杂度理论做出的贡献,以及在密码学和编程校验上的应用而获1995年图灵奖。布卢姆出生于委内瑞拉的一个犹太家庭,他曾在麻省理工学
三大公有云厂商,香港地区主机测评一、ping时延比对(厦门电信本地测试):Ping时延测试腾讯云阿里云华为云延迟率最低时延44ms,最高72ms,平均46ms47.242段:最低时延59ms,最高204ms,平均107ms最低时延45ms,最高93ms,平均47ms丢包率丢包率小有的ip段丢包率较大每个段都会有概率丢包阿里云:47.242段:最低时延59ms,最高204ms,平均107ms,有的ip段丢包率较大8.210段:最低时延64ms,最高232ms,平均119ms,丢包率较好腾讯云:最低时延44ms,最高72ms,平均46ms,丢包率小华为云:最低时延45ms,最高93ms,平均47m
1.腾讯轻服务器K3S系统安装前端时间买了三年腾讯轻服务器,现在准备学习下K8S,但是服务器资源少,退而求其次的使用腾讯轻服务器默认的K3S系统。1.获取按照提示,获取token,2.防火墙开启9090端口,输入url:http://公网IP:9090登录;3.开启SSH远程连接:创建密钥,默认下载文件,windows本地重命名增加后缀.pub,CRT通过公钥进行SSH登录。2.Kubernetes-dashboard 输入url:http://公网IP:9090,可以看到相关菜单点击右上角“+”,可以创建yaml文件进行服务部署 3.后台查看K3S相关信息[root@VM-16-5-cent
前阵InfoQ社区看到腾讯云腾讯云区块链服务平台(TBaaS)长安链体验活动,一顿操作猛如虎报了个名,体验完用一个字概括:强。非要再加几个字的话,总体感受下来装配模式灵活高效,配套工具完整辩解。话不多说开始主题本文目录结构分为区块链分类和TBaaS平台介绍、TBaaS平台上链教程三个部分一、区块链分类:大体上来说,区块链可分为公链,联盟链,私有链三种:公有链(PublicBlockchain)公有链是指任何人都能参与的区块链。公有链是去中心化程度最高的区块链,不受机构控制,整个账本对所有人公开透明。任何人都能在公有链上查询交易、发送交易、参与记账。加入公有链不需要任何人授权,可以自由加入或者离
我想安装gitlab,不推荐使用任何ruby版本管理器。但是这是我的操作系统Linuxdqa-dev3.13.0-24-generic#46-UbuntuSMPThuApr1019:08:14UTC2014i686i686i686GNU/Linuxlinkingshared-objectpsych.soinstallingdefaultpsychlibrariesmake[2]:Leavingdirectory`/home/poc/ruby-2.0.0-p451/ext/psych'make[2]:Enteringdirectory`/home/poc/ruby-2.0.0-p451/
微信小程序使用腾讯地图方法第一步:登录或者注册腾讯地图官方(地址:https://lbs.qq.com/)第二步:在创建sdk;创建方法:进入控制面板后显示创建sdk,点击之后输入名称和选择应用场景后点击设置选择web和小程序后输入APPID后点击确定就好。第二步:在微信小程序开发管理页面里面的域名管理里面输入合法域名:(https://apis.map.qq.com)就提交就可以。第三步:在腾讯地图官方网站上下载相关的sdk就可以。第四步:在下载的压缩文件夹里面找到(qqmap-wx-jssdk.js)文件引入到相关页面。引入方法:(index.js文件来描述)//引入进来腾讯地图的sdkv
2023年最新大厂开发面试题!!!滴滴篇B+树、B-树的区别?数据库隔离级别,幻读和不可重复读的区别?有hell,well,hello,world等字符串组,现在问能否拼接成helloworld,代码实现。快排算法实现线程安全的单例模式匹马赛跑,有一个赛场,只有五个赛道,没有计时器,只能通过目测来记录快慢,求出第三3快的马要多少场比赛?kmp算法next数组的求解思路数组中有三个数字出现超过3/4,求这三个数字?1到n+2个数组中缺了两个数,如何用O(n)时间,O(1)空间找到这两个数字。一条线段长为1,随机选两个点,将改线段分为三段,三段能成三角形的概率是多少?有一个教授,他三个学生,脑袋背
近几年随着各种关于音乐的综艺节目和自媒体盛行,音乐变得更加贴近民众。除了歌手以外的,音乐生产工作中的其他角色,例如编曲师、混音师、母带师等也渐渐走进大众的视野。EarMaster:souurl.cn/b6rSStGuitarPro:souurl.cn/e5FcawFLStudio:souurl.cn/WwLYG8GoldWave:souurl.cn/03CuIY中国新说唱、即刻电音等节目组,也都致力于将音乐的产出过程呈现在大众面前。那么今天就给大家介绍几个全职音乐人都在使用的软件。EarMaster----视唱练耳黑科技视唱练耳几乎是每个音乐专业的学生必备的能力。视唱练耳指的是通过对我们的音乐
二升三笔试(老田)一.数组扁平化(将一个多维数组变为一个一维数组。例如,将数组[1,2,[3,[4,5]],[6,7]]扁平化处理后输出[1,2,3,4,5,6,7];)functiongetArray(arr){letres=[];for(leti=0;i 二.合并有序数组给定两个从小到大排好序的数组,亲,请你把它两个合并成新的数组,合并后的结果依然有序。如:给定数组:[1,3,7,15,20]和数组:[-5,0,2,8,9,12]。那么结果是:[-5,0,1,2,3,7,8,9,12,15,20]functionmergeSortedArrays(arr1,arr2){varmergedA