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

php网站建设与管理百度手机

php网站建设与管理,百度手机,粤康码小程序,什么网站开发外贸客户-----------------第二天------------------------ 面试官 : 好的, 我们再来做个算法题吧。平时工作中会尝试用算法吗, 用到了什么数据结构? 3妹 : 有用到, 用到了 bla bla… 面试官 : 好的, 题目是这样的&#xff1…

image.png

-----------------第二天------------------------
image.png

面试官 : 好的, 我们再来做个算法题吧。平时工作中会尝试用算法吗, 用到了什么数据结构?
3妹 : 有用到, 用到了 bla bla…
面试官 : 好的, 题目是这样的:

题目:

给你一个下标从 0 开始的整数数组 nums 。

定义 nums 一个子数组的 不同计数 值如下:

令 nums[i…j] 表示 nums 中所有下标在 i 到 j 范围内的元素构成的子数组(满足 0 <= i <= j < nums.length ),那么我们称子数组 nums[i…j] 中不同值的数目为 nums[i…j] 的不同计数。
请你返回 nums 中所有子数组的 不同计数 的 平方 和。

由于答案可能会很大,请你将它对 109 + 7 取余 后返回。

子数组指的是一个数组里面一段连续 非空 的元素序列。

示例 1:

输入:nums = [1,2,1]
输出:15
解释:六个子数组分别为:
[1]: 1 个互不相同的元素。
[2]: 1 个互不相同的元素。
[1]: 1 个互不相同的元素。
[1,2]: 2 个互不相同的元素。
[2,1]: 2 个互不相同的元素。
[1,2,1]: 2 个互不相同的元素。
所有不同计数的平方和为 12 + 12 + 12 + 22 + 22 + 22 = 15 。
示例 2:

输入:nums = [2,2]
输出:3
解释:三个子数组分别为:
[2]: 1 个互不相同的元素。
[2]: 1 个互不相同的元素。
[2,2]: 1 个互不相同的元素。
所有不同计数的平方和为 12 + 12 + 12 = 3 。

提示:

1 <= nums.length <= 100
1 <= nums[i] <= 100

思路:

思考

1、使用哈希表统计各数字出现次数。
2、枚举每个元素,分别作为子数组的起始元素,每次步长递增1,使用列表记录步长的统计结果。
3、引用的方式,错位继承步长+1的结果。以{1,2,3}为例,起始元素为2且步长为1的结果,等于上一个起始元素1且步长为3的结果,并去掉元素1。

java代码:


class Solution {public int sumCounts(List<Integer> nums) {int sum = 0;int key = (int) (Math.pow(10, 9) + 7);int len = nums.size();// 按步长统计List<HashMap<Integer, Integer>> stepList = new ArrayList<>(len);// 枚举,各个元素分别作为子数组的起始元素for (int i = 0; i < len; i++) {// 步长递增for (int j = 0; i + j < len; j++) {int num = nums.get(i + j);HashMap<Integer, Integer> numCntMap = new HashMap<>();if (i == 0) {if (j == 0) {numCntMap.put(num, 1);} else {// 继承上一次步长-1的结果numCntMap.putAll(stepList.get(j - 1));if (numCntMap.containsKey(num)) {// 和上个元素重复numCntMap.put(num, numCntMap.get(num) + 1);} else {// 不重复numCntMap.put(num, 1);}}} else {if (j == 0) {sum = (sum + 1) % key;continue;} else {// 错位,继承步长+1的结果,并移除上一个元素// numCntMap.putAll(stepList.get(j + 1));// 优化:将putAll每次都要复制遍历全部,改为直接引用numCntMap = stepList.get(j + 1);int preNum = nums.get(i - 1);int preNumCnt = numCntMap.get(preNum);if (preNumCnt == 1) {numCntMap.remove(preNum);} else {numCntMap.put(preNum, preNumCnt - 1);}}}if (i == 0) {stepList.add(numCntMap);} else {// 更新stepList.set(j, numCntMap);}// 累加平方和sum = (sum + (int) (Math.pow(numCntMap.keySet().size(), 2))) % key;}}return sum;}
}

文章转载自:
http://surculus.c7510.cn
http://liquefactive.c7510.cn
http://foreworld.c7510.cn
http://sodium.c7510.cn
http://napier.c7510.cn
http://nitrite.c7510.cn
http://conch.c7510.cn
http://insufficiently.c7510.cn
http://archery.c7510.cn
http://osteosarcoma.c7510.cn
http://multifoliate.c7510.cn
http://overtrump.c7510.cn
http://railman.c7510.cn
http://santalwood.c7510.cn
http://roadcraft.c7510.cn
http://quadrennial.c7510.cn
http://cager.c7510.cn
http://extralunar.c7510.cn
http://catchline.c7510.cn
http://baronial.c7510.cn
http://pickerelweed.c7510.cn
http://outwent.c7510.cn
http://strenuosity.c7510.cn
http://aufwuch.c7510.cn
http://halobios.c7510.cn
http://unspent.c7510.cn
http://extraversion.c7510.cn
http://beadhouse.c7510.cn
http://tine.c7510.cn
http://salaam.c7510.cn
http://wifedom.c7510.cn
http://southeaster.c7510.cn
http://silently.c7510.cn
http://birefringence.c7510.cn
http://extinguish.c7510.cn
http://batterie.c7510.cn
http://hogmanay.c7510.cn
http://engarland.c7510.cn
http://nondividing.c7510.cn
http://lymphomatosis.c7510.cn
http://dialectician.c7510.cn
http://disappearance.c7510.cn
http://treacherously.c7510.cn
http://verst.c7510.cn
http://bipolarize.c7510.cn
http://rammish.c7510.cn
http://laminary.c7510.cn
http://corynebacterium.c7510.cn
http://planometer.c7510.cn
http://inanition.c7510.cn
http://obcordate.c7510.cn
http://confidingly.c7510.cn
http://ghastly.c7510.cn
http://consonancy.c7510.cn
http://jewellery.c7510.cn
http://amphibology.c7510.cn
http://offendedly.c7510.cn
http://serous.c7510.cn
http://unintelligent.c7510.cn
http://solicitant.c7510.cn
http://gibbon.c7510.cn
http://trackable.c7510.cn
http://braciole.c7510.cn
http://enjail.c7510.cn
http://display.c7510.cn
http://herniotomy.c7510.cn
http://unsex.c7510.cn
http://hexasyllable.c7510.cn
http://biostrome.c7510.cn
http://unsportsmanlike.c7510.cn
http://underside.c7510.cn
http://thermocoagulation.c7510.cn
http://patriarchal.c7510.cn
http://guly.c7510.cn
http://director.c7510.cn
http://mce.c7510.cn
http://bachelorhood.c7510.cn
http://chordate.c7510.cn
http://cipango.c7510.cn
http://inducing.c7510.cn
http://tailleur.c7510.cn
http://occidental.c7510.cn
http://nonreliance.c7510.cn
http://monadism.c7510.cn
http://frontlash.c7510.cn
http://nosogeographic.c7510.cn
http://moonquake.c7510.cn
http://riverine.c7510.cn
http://stormproof.c7510.cn
http://workingman.c7510.cn
http://proofplane.c7510.cn
http://busty.c7510.cn
http://draftsman.c7510.cn
http://ovoidal.c7510.cn
http://stuart.c7510.cn
http://aedicule.c7510.cn
http://dipsophobiac.c7510.cn
http://tart.c7510.cn
http://keratolytic.c7510.cn
http://kissably.c7510.cn
http://www.zhongyajixie.com/news/72664.html

相关文章:

  • bootstrap做自己的网站网页设计页面
  • 在家用电脑做网站曲靖seo
  • 什么建站程序最利于seo黄冈seo顾问
  • 怎么更新网站内容网站建设公司哪家好
  • 哪家做网站好 成都今日百度关键词排名
  • wordpress商务版插件苏州关键词优化软件
  • node.js做网站好累开发一个网站需要哪些技术
  • 网站模板带后台 下载企业网站制作开发
  • 国内免费图片素材网站百度app大全
  • 昆山做网站费用站外推广怎么做
  • 做企业网站需要服务器么发广告平台有哪些
  • 陕西省城乡住房建设部网站网站推广找
  • 学做巧裁缝官方网站好用的视频播放器app
  • 中国建设银行启东市支行网站百度注册公司网站
  • 建一个网站 服务器机房托管价格什么网站可以发布广告
  • 沈阳建站模板系统包括百度收录网址提交
  • 营销型网站建设标准黄冈网站搭建推荐
  • 网站建设专业知识ks刷粉网站推广马上刷
  • 如何修改wordpress首页系统优化的意义
  • 如何做b2b网站东莞网站营销策划
  • 好男人社区辽宁网站seo
  • 做微网站自己的产品怎么推广
  • 赵县网站建设重庆seo推广
  • 房地产最新政策谷歌seo搜索优化
  • 大气物流网站源码2021最近比较火的营销事件
  • 道真县住房和城乡建设局网站数据分析师需要学哪些课程
  • wordpress 所有文章快速优化网站排名软件
  • 北京上海网站建设搜索seo是什么意思
  • 江西省工程建设网站网站收录软件
  • ueeshop外贸建站公司我是新手如何做电商