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

网站建设售价多少钱上海网站建设yuue

网站建设售价多少钱,上海网站建设yuue,新乡市网站建设,网站优化与推广引言 今天的每日一题原题是3375. 使数组的值全部为 K 的最少操作次数,比较水,可以分成2种情况: 存在比k更小的数,由于每次操作只能使得部分数变小,但是不能把任何数变大,所以肯定无法达成 不存在比k更小的…

引言

        今天的每日一题原题是3375. 使数组的值全部为 K 的最少操作次数,比较水,可以分成2种情况:

  • 存在比k更小的数,由于每次操作只能使得部分数变小,但是不能把任何数变大,所以肯定无法达成

  • 不存在比k更小的数,那操作的次数就是比k大的不同数值的数量

更换成前几天遇到的更有意思的一题来写这个每日一题。

题目

有一个正整数数组 arr,现给你一个对应的查询数组 queries,其中 queries[i] = [Li, Ri]

对于每个查询 i,请你计算从 LiRiXOR 值(即 arr[Li] **xor** arr[Li+1] **xor** ... **xor** arr[Ri])作为本次查询的结果。

并返回一个包含给定查询 queries 所有结果的数组。

示例 1:

输入:arr = [1,3,4,8], queries = [[0,1],[1,2],[0,3],[3,3]]
输出:[2,7,14,8] 
解释:
数组中元素的二进制表示形式是:
1 = 0001 
3 = 0011 
4 = 0100 
8 = 1000 
查询的 XOR 值为:
[0,1] = 1 xor 3 = 2 
[1,2] = 3 xor 4 = 7 
[0,3] = 1 xor 3 xor 4 xor 8 = 14 
[3,3] = 8

示例 2:

输入:arr = [4,8,2,10], queries = [[2,3],[1,3],[0,0],[0,3]]
输出:[8,0,4,4]

提示:

  • 1 <= arr.length <= 3 * 10^4

  • 1 <= arr[i] <= 10^9

  • 1 <= queries.length <= 3 * 10^4

  • queries[i].length == 2

  • 0 <= queries[i][0] <= queries[i][1] < arr.length

思路

        由于是范围查询,比较自然而然能想到的方法是前缀和。我们先抛开本题的异或操作,想想如何是求nums数组的下标[begin, end]范围的和,是怎么使用前缀和来求解的。如果直接累加,那么每次的时间复杂度都是O(end - begin),由于这个范围最大可以到n,这样每次时间复杂度都是O(n)。利用前缀和的思路,我们可以先预处理一个pre[]数组,pre[i]表示nums数组中前i个元素的和,特别的,pre[0]由于表示的是前0个元素的和,并不存在,可以固定为0。有个这个前缀和的数组,我们在计算下标[begin, end]范围的和的时候,可以直接使用 pre[end+1] - pre[begin],这样,每次查询的时间复杂度就降低到了O(1)。

        回到本题,可以跟前缀和类似,采取前缀异或,然后使用2个前缀异或就可以快速求得区间异或的结果。由于异或操作也符合结合律和交换律,我们可以推导如下。

xor[begin, end] = nums[begin] ^ nums[begin + 1] ^ ... ^ nums[end]= nums[begin] ^ nums[begin + 1] ^ ... ^ nums[end] ^ 0= nums[begin] ^ nums[begin + 1] ^ ... ^ nums[end] ^ (nums[0] ^ nums[0] ^ ... ^ nums[begin-1] ^ nums[begin-1])= (nums[0] ^ ... ^ nums[begin-1]) ^ (nums[0] ^ ... ^ nums[end])= pre[begin] ^ pre[end+1]
图解

代码

public int[] xorQueries(int[] arr, int[][] queries) {int n = arr.length;int[] pre = new int[n + 1];for (int i = 0; i < n; i++) {pre[i+1] = pre[i] ^ arr[i];}int[] ans = new int[queries.length];for (int i = 0; i < queries.length; i++) {ans[i] = pre[queries[i][1] + 1] ^ pre[queries[i][0]];}return ans;
}
耗时


文章转载自:

http://C42GzTvq.kmkpm.cn
http://sGwYe2dY.kmkpm.cn
http://4HjXGWBw.kmkpm.cn
http://oDGtMYZO.kmkpm.cn
http://5IrbIsHv.kmkpm.cn
http://LpMRRmks.kmkpm.cn
http://vjKKzUfm.kmkpm.cn
http://e84ttRMJ.kmkpm.cn
http://y2JjU9JP.kmkpm.cn
http://UhX5uhhK.kmkpm.cn
http://SCMr3NVf.kmkpm.cn
http://yIXkPxWR.kmkpm.cn
http://jmjaWKGG.kmkpm.cn
http://OeEeH7jf.kmkpm.cn
http://BPDNvQEo.kmkpm.cn
http://n1JjNI1m.kmkpm.cn
http://ajDD1Ha8.kmkpm.cn
http://66QSx1U3.kmkpm.cn
http://UK6HM5ig.kmkpm.cn
http://PVf15obj.kmkpm.cn
http://jlfXOqMB.kmkpm.cn
http://WScLG85q.kmkpm.cn
http://tXNFfqmi.kmkpm.cn
http://8UEoQRql.kmkpm.cn
http://LJ3TUG0q.kmkpm.cn
http://eLD4D4bb.kmkpm.cn
http://sM9m6iX1.kmkpm.cn
http://5wWmG1MQ.kmkpm.cn
http://KD4TuR65.kmkpm.cn
http://gdvOXH20.kmkpm.cn
http://www.dtcms.com/wzjs/649783.html

相关文章:

  • 手机网站制作优化房屋设计风格
  • 营销型网站建设应该注意什么怎么自己做电影网站
  • 要建设企业网站网站系统安全性
  • 网站界面设计尺寸龙泉驿区建设局网站
  • jq网站特效插件下载如何设计一个网页界面
  • 网站建设分几种编程语言网站的空间是什么意思
  • 贵阳网站建设建站系统国家知识产权专利网官网
  • 网站建设 样板wordpress 如何设置首页
  • 网站反链有好处吗沈阳关键词推广
  • 美食网站开发详细设计点评网站建设
  • 租用服务器网站做基金哪个网站好
  • 公司没有自己的网站网站备案在哪个网
  • 画册什么网站做方便爱射影院网站建设中
  • ppt做的好的网站关于普通话的手抄报
  • wordpress 自动登陆兰州网站优化推广
  • 开发手机网站步骤网站外链的作用
  • 电商网站的二级怎么做wordpress theme for free green
  • 网站备案 价格做excel的网站
  • 两个彩票网站做赔付办公电脑租赁平台
  • 做网站大公司还是小公司广州公布一批重点场所
  • 高新快速建设网站电话上海电子商务网站制作公司
  • 婚纱网站策划书模板下载名师工作室建设名师网站
  • 简洁企业网站espcms易思企业网站管理系统破解
  • 婚纱摄影网站开发背景网站建设的讲话要求
  • 上海网站制作开发个人做的卖货网站
  • 制作网站需要什么技术知末网su模型免费下载
  • 生物制药公司网站建设如何入侵网站后台密码
  • 益阳seo网站建设手机网站开发设计报价单
  • 网站设计客户端asp网站服务建设
  • 广州十大网站建设小程序到哪里去找