当前位置: 首页 > news >正文

dede打包好的网站怎么提取模板青岛的seo服务公司

dede打包好的网站怎么提取模板,青岛的seo服务公司,江山做网站,水果香精东莞网站建设技术支持文章目录 使用前缀和哈希表560.和为K的子数组525.连续数组2588.统计美丽子数组数目 子数组的定义是原来的数组当中连续的非空的序列,而我们的背包问题的选与不选的情况,对应的是这个非连续的情况,那么这种情况就要注意当然啦,对于线性的时间内…

文章目录

  • 使用前缀和+哈希表
    • 560.和为K的子数组
    • 525.连续数组
    • 2588.统计美丽子数组数目

  • 子数组的定义是原来的数组当中连续的非空的序列,而我们的背包问题的选与不选的情况,对应的是这个非连续的情况,那么这种情况就要注意
  • 当然啦,对于线性的时间内解决的问题我们可能会想到使用滑动窗口进行处理的问题,但是应该要注意 滑动窗口只适合用于单调的情况,也就是说nums数组是全部为非负数或者非正数的情况
    • 我们所使用能够使用滑动窗口求解这个子数组的和为k的情况,基于的理念就是,控制滑动窗口的l和r,当<k的时候,窗口向右边扩大,>k的情况,就窗口左边缩小,这个理论必须是基于单调的,也就是窗口越大,这个窗口的和值就越大
  • 对于前缀和来说,适用的场景就没有那么多的限制,任意的子数组之和都可以转化为前缀和的差

前缀和与查分的补充

  • 这个前缀和与哈希表的组合,有求解方案数(和为k值的方案数),那么记录的是每种和值所出现的次数,对于长度问题来说,就是统计每种和值所出现的最小的下标

使用前缀和+哈希表

560.和为K的子数组

560.和为K的子数组

在这里插入图片描述

思路分析

  • 首先求解的是连续的情况,所以考虑使用滑动窗口以及这个前缀和,但是由于存在正数和负数同时存在,所以就只能使用这个前缀和+哈希表
from collections import defaultdict
class Solution:def subarraySum(self, nums: List[int], k: int) -> int:# 不单调,不能使用这个滑动窗口# 使用前缀和,但是为了不用两层循环进行遍历,所以我们得使用一个哈希表进行处理n = len(nums)store = defaultdict(int)pre = [0]*(n+1)for i in range(n):pre[i+1] = pre[i] + nums[i]# pre[i] - pre[j] = k ,那么只需在哈希表中查询这个pre[i] - k 的个数即可ans = 0# 注意这个 0:1也要加进去for i in range(n+1):ans += store[pre[i] - k]store[pre[i]] += 1return ans

525.连续数组

525.连续数组

在这里插入图片描述

  • 参照和为k的子数组的思路,但是你会发现一个问题,这个0,1的统计时分难统计,难道要直接分别统计0和1各自的数量吗?
  • 当然不是,所以得进行巧妙的转换:把这个0替换成-1,然后我们只需统计这个 和为0最长子数组即可,在使用哈希表的时候,我们不是记录这个某个和值的出现的次数,而是改为记录该和值出现的最小的下标
class Solution:def findMaxLength(self, nums: List[int]) -> int:n = len(nums)newnum = [0]*n # 进行转化for i in range(n):if nums[i] == 0:newnum[i] = -1else:newnum[i] = 1# 求解前缀和pre = [0]*(n+1)for i in range(n):pre[i+1] = pre[i] + newnum[i]store = {}ans = 0for i in range(n+1):# 判断该键是否出现过if pre[i] in store.keys():ans = max(ans,i - store[pre[i]])else:store[pre[i]] = ireturn ans

2588.统计美丽子数组数目

2588.统计美丽子数组数目

在这里插入图片描述

  • 子数组是全部为0,也就是和值为0,那么对于减去的每一位来说,其实就是要求对应位数上的1是偶数个数的,对于判断是否是偶数个1,那么我们直接考虑使用这个 异或进行操作,也就是 异或值为0的子数组的个数情况
from collections import defaultdict
class Solution:def beautifulSubarrays(self, nums: List[int]) -> int:# 求解方案数n = len(nums)# 异或前缀pre = [0]*(n+1)for i in range(n):pre[i+1] = pre[i]^nums[i]store = defaultdict(int)# 遍历ans = 0for i in range(n+1):ans += store[pre[i]]store[pre[i]] += 1return ans
http://www.shuangfujiaoyu.com/news/44681.html

相关文章:

  • 天津广告公司网站建设合肥优化排名推广
  • 武汉婚纱摄影网站建设网上推广产品哪个网好
  • python 做网站很快吗发文章用哪个平台比较好
  • 国外政府网站建设案例企业seo顾问服务
  • 云南网站设计模板怎么引流客源最好的方法
  • wordpress最好的页面编辑器搜索引擎简称seo
  • PHP视频类网站应该怎么做seo免费优化网站
  • 网站后台上传表格宿迁网站建设制作
  • 站台建筑sem竞价培训
  • 蓝色系列的网站推广下载app拿佣金
  • 网站开发外包合同范本淘宝搜索词排名查询
  • 贵阳网站建设方案最新网域查询入口
  • 网站发的文章怎么做的互联网营销方案
  • 好牛网站建设营销策划方案怎么写
  • 中国电信新建网站备案管理系统 录完信息搜索引擎优化好做吗
  • 郑州网站建设公司排行南昌seo优化公司
  • 南宁微网站制作手机百度app下载
  • 网站制作公司要文化建设费河南品牌网站建设
  • 网站推广软件价格福州网seo
  • a站与b站seo网站优化详解
  • 有什么网站可以发布个人信息百度一下网页首页
  • 荥阳做网站推广网络推广渠道和方式
  • 做壁画的网站腾讯推广一次广告多少钱
  • 外贸品牌网站设计公司网络推销
  • 东莞医院网站建设高端网站建设
  • 备案的域名可以做盗版电影网站吗磁力宅在线搜种子
  • 做网站和维护网站个人怎么做百度竞价
  • wordpress wp rest api网站搜索引擎优化报告
  • url怎么做网站网络营销网站
  • 手机app软件定制网站关键词优化外包