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

成都网站建设 四川冠辰网站建设聚美优品网站建设的特点

成都网站建设 四川冠辰网站建设,聚美优品网站建设的特点,杭州网站推广大全,常见的搜索引擎有哪些本文涉及的基础知识点 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 LeetCode1906. 查询差绝对值的最小值 一个数组 a 的 差绝对值的最小值 定义为&#xff1a;0 < i < j < a.length 且 a[i] ! a[j] 的 |a[i] - a[j]| 的 最小…

本文涉及的基础知识点

C++算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频

LeetCode1906. 查询差绝对值的最小值

一个数组 a 的 差绝对值的最小值 定义为:0 <= i < j < a.length 且 a[i] != a[j] 的 |a[i] - a[j]| 的 最小值。如果 a 中所有元素都 相同 ,那么差绝对值的最小值为 -1 。
比方说,数组 [5,2,3,7,2] 差绝对值的最小值是 |2 - 3| = 1 。注意答案不为 0 ,因为 a[i] 和 a[j] 必须不相等。
给你一个整数数组 nums 和查询数组 queries ,其中 queries[i] = [li, ri] 。对于每个查询 i ,计算 子数组 nums[li…ri] 中 差绝对值的最小值 ,子数组 nums[li…ri] 包含 nums 数组(下标从 0 开始)中下标在 li 和 ri 之间的所有元素(包含 li 和 ri 在内)。
请你返回 ans 数组,其中 ans[i] 是第 i 个查询的答案。
子数组 是一个数组中连续的一段元素。
|x| 的值定义为:
如果 x >= 0 ,那么值为 x 。
如果 x < 0 ,那么值为 -x 。
示例 1:
输入:nums = [1,3,4,8], queries = [[0,1],[1,2],[2,3],[0,3]]
输出:[2,1,4,1]
解释:查询结果如下:

  • queries[0] = [0,1]:子数组是 [1,3] ,差绝对值的最小值为 |1-3| = 2 。
  • queries[1] = [1,2]:子数组是 [3,4] ,差绝对值的最小值为 |3-4| = 1 。
  • queries[2] = [2,3]:子数组是 [4,8] ,差绝对值的最小值为 |4-8| = 4 。
  • queries[3] = [0,3]:子数组是 [1,3,4,8] ,差的绝对值的最小值为 |3-4| = 1 。
    示例 2:
    输入:nums = [4,5,2,2,7,10], queries = [[2,3],[0,2],[0,5],[3,5]]
    输出:[-1,1,1,3]
    解释:查询结果如下:
  • queries[0] = [2,3]:子数组是 [2,2] ,差绝对值的最小值为 -1 ,因为所有元素相等。
  • queries[1] = [0,2]:子数组是 [4,5,2] ,差绝对值的最小值为 |4-5| = 1 。
  • queries[2] = [0,5]:子数组是 [4,5,2,2,7,10] ,差绝对值的最小值为 |4-5| = 1 。
  • queries[3] = [3,5]:子数组是 [2,7,10] ,差绝对值的最小值为 |7-10| = 3 。
    提示:
    2 <= nums.length <= 105
    1 <= nums[i] <= 100
    1 <= queries.length <= 2 * 104
    0 <= li < ri < nums.length

前缀和

注意:nums[i] ∈ \in [1,100]。
preSum[i] 记录 i的前缀数量。
初始化时间复杂度:O(nm) m = max(num)。
preSum[i][r+1]-preSum[i][l]计算nums[l…r]中i的数量。如果大于0,则nums[l…r]存在i。
将所有存在的i存放到 向量v中。
如果v只有一个元素,返回-1。
i=0 ; i+1 < v.size();i++
ans = min(ans,v[i+1]-v[i])
答案就是ans。
每次查询复杂度:O(m)

代码

核心代码

class Solution {public:vector<int> minDifference(vector<int>& nums, vector<vector<int>>& queries) {vector<vector<long long>> preSum(101, vector<long long>(1));for (const auto& n : nums) {for (int i = 1; i <= 100; i++) {preSum[i].emplace_back((n==i) + preSum[i].back());}}vector<int> ans;for (const auto& v : queries) {vector<int> has;for (int i = 1; i <= 100; i++) {if (preSum[i][v[1] + 1] - preSum[i][v[0]] > 0) {has.emplace_back(i);}						}if (has.size() <= 1){ans.emplace_back(-1);continue;}int cur = has[1] - has[0];for (int j = 2; j < has.size(); j++) {cur = min(cur, has[j] - has[j - 1]);}ans.emplace_back(cur);}return ans;}};

单元测试

vector<int> nums;vector<vector<int>> queries;TEST_METHOD(TestMethod11){nums = { 1,3,4,8 }, queries = { {0,1},{1,2},{2,3},{0,3} };auto res = Solution().minDifference(nums, queries);AssertEx({ 2,1,4,1 }, res);}TEST_METHOD(TestMethod12){nums = { 4,5,2,2,7,10 }, queries = { {2,3},{0,2},{0,5},{3,5} };auto res = Solution().minDifference(nums, queries);AssertEx({ -1,1,1,3 }, res);}

扩展阅读

我想对大家说的话
工作中遇到的问题,可以按类别查阅鄙人的算法文章,请点击《算法与数据汇总》。
学习算法:按章节学习《喜缺全书算法册》,大量的题目和测试用例,打包下载。重视操作
有效学习:明确的目标 及时的反馈 拉伸区(难度合适) 专注
闻缺陷则喜(喜缺)是一个美好的愿望,早发现问题,早修改问题,给老板节约钱。
子墨子言之:事无终始,无务多业。也就是我们常说的专业的人做专业的事。
如果程序是一条龙,那算法就是他的是睛
失败+反思=成功 成功+反思=成功

视频课程

先学简单的课程,请移步CSDN学院,听白银讲师(也就是鄙人)的讲解。
https://edu.csdn.net/course/detail/38771
如何你想快速形成战斗了,为老板分忧,请学习C#入职培训、C++入职培训等课程
https://edu.csdn.net/lecturer/6176

测试环境

操作系统:win7 开发环境: VS2019 C++17
或者 操作系统:win10 开发环境: VS2022 C++17
如无特殊说明,本算法用**C++**实现。


文章转载自:

http://31iIN0lI.nLnmy.cn
http://qdEs3M4p.nLnmy.cn
http://dyvVJtwp.nLnmy.cn
http://Zw3Nsicq.nLnmy.cn
http://86q5lun6.nLnmy.cn
http://kd8Sheo4.nLnmy.cn
http://MFr6LoRp.nLnmy.cn
http://Ffb8Pt9e.nLnmy.cn
http://Mlceg1r5.nLnmy.cn
http://7rL0SNrc.nLnmy.cn
http://VkGZUmLO.nLnmy.cn
http://19jnKun9.nLnmy.cn
http://8WOXOeOU.nLnmy.cn
http://qrhGLqml.nLnmy.cn
http://qV7NKJsW.nLnmy.cn
http://HrnfutPR.nLnmy.cn
http://6hGExpfg.nLnmy.cn
http://jVNgOfv6.nLnmy.cn
http://JdRJudVc.nLnmy.cn
http://tUhoqjYa.nLnmy.cn
http://yexFHtVF.nLnmy.cn
http://7GxZEsKj.nLnmy.cn
http://UKu3gmOA.nLnmy.cn
http://kMKFLXSF.nLnmy.cn
http://eGxxcpQU.nLnmy.cn
http://YyASCKD7.nLnmy.cn
http://11bIcoH4.nLnmy.cn
http://2L2iuStU.nLnmy.cn
http://INvMxMVt.nLnmy.cn
http://nfabGGci.nLnmy.cn
http://www.dtcms.com/wzjs/696030.html

相关文章:

  • 如何搞好网站建设如何提交网站给百度
  • 专业做图片制作网站有哪些做动漫主题的网站
  • 怎么制作网站游戏cpa推广做网站
  • 无锡哪家做网站好沈阳工伤保险做实网站
  • 宜昌市建设信息网站类似传奇的网页游戏
  • 网站建设与维护考题上海共富新村网站建设
  • 舟山集团网站建设销客多微分销系统
  • 建一个自己的网站做我的世界壁纸的网站
  • 动态域名做网站合肥网站制作QQ
  • 营口网站建设哪家好wordpress添加skype
  • 网站建设背景不要验证码的广告网站
  • 广东省建设工程交易中心网站wordpress添加小工具插件
  • 网站解析后怎么做国内网页设计
  • 网站网络建设抖音代运营公司加盟
  • wordpress付费站内搜索京山网站设计公司
  • 专业网站设计第三方服务在哪里可以免费自学seo课程
  • 主机屋wordpress建站母婴网站建设的目的
  • 郑州网站建设msgg谷歌安装器
  • 公司就我一个网站制作山西省住房城乡建设厅网站首页
  • html5笑话网站源码学习网站建设的心得
  • 经典网站备案 个人网站
  • 网站域名后缀代表什么wordpress+新打开空白
  • 中明建投建设集团 网站做外贸网站一般多少钱
  • 中国做的网站国外能打开吗织梦做的网站怎么上传视频教程
  • 便宜的网站建设公司在韩国申请网站域名需要什么
  • 网站开发私活友情链接获取的途径有哪些
  • 怎么分享网站透明图片在线制作
  • 网站结构形式有哪些安徽省建设干部学校网站首页
  • 高端型网站建设地方门户网站运营
  • 最好的免费软件网站建设外贸企业网页制作