当前位置: 首页 >  网络应用 >  二分法:区间的重要性(初探)

二分法:区间的重要性(初探)

导读:哈喽,我是404,正在努力提升代码能力的未来女程序员(笑),这是我的第一篇博客,接下来会记录我的学习之路到我力扣完全可以手撕,废话不多说,正文开搞!.通过初见力扣经典题目704.二分查找和59.螺旋矩阵,我注意到区间的使用对于题解非常重要,开与闭的划定是解题的关键,以下是一些重要

哈喽,我是404,正在努力提升代码能力的未来女程序员(笑),这是我的第一篇博客,接下来会记录我的学习之路到我力扣完全可以手撕,废话不多说,正文开搞!

通过初见力扣经典题目704.二分查找和59.螺旋矩阵,我注意到区间的使用对于题解非常重要,开与闭的划定是解题的关键,以下是一些重要点:

1.【】与【)的区别

首先贴上两幅图,借用一下代码随想录当中的图示:

【】的情况 【)的情况

可以看出,包括与不包括的区别在于边界值在何处,与此同时,对于区间缩小后值的位置也有影响,以下是对比:

【】时,若区间向左缩小,right = mid - 1 【)时,若区间向左缩小,right = mid

ps:其实一开始并不清除为什么right的值会有差别,读了代码随想录也有点迷糊,之后知道,这与区间 有关。【】时,约束条件已经不满足,必须要再缩小一次;【)时约束条件仍然成立,所以可以为mid值。

2.循环不变量

在做螺旋矩阵时我不由得对前人的思路佩服至极,对于模拟一段过程,他们追求最简化,以此产生了循环不变量,做到简洁易懂。如图:

方块颜色即统一区间,循环不变量原则,对这道题的解决带来了极大的便利。

3.碎碎念

第一次刷题时不懂mid不可按一般思维直接加和,会导致溢出,迷糊了很久,后面看到移位运算也是想不到的操作,真妙啊。

感谢观看!不看也感谢我自己的知识产出!

内容
  • 产品代码都给你看了,可别再说不会DDD(一):DDD入门
    产品代码都给你看了,可别再说不会
    2023-12-03
    这是一个讲解DDD落地的文章系列,作者是《实现领域驱动设计》的译者滕云。本文章系列以一个真实的并已成功上线的软件项目——
  • 面试:靠着这篇笔记,我拿下了16k车载测试offer!
    面试:靠着这篇笔记,我拿下了16
    2023-12-05
    如何写简历.个人技能.个人技能一般不要超过10条,一般在8条内。.一、测试流程和技术.1、熟悉车载系统研发和测试流程,能
  • 颜值即正义,献礼就业季,打造多颜色多字体双飞翼布局技术简历模版(Resume)
    颜值即正义,献礼就业季,打造多颜
    2023-12-06
    一年好景君须记,最是橙黄橘绿时。金三银四,秣马厉兵,没有一个好看的简历模板怎么行?无论是网上随便下载还是花钱买,都是一律
  • 为什么使用消息队列?我这样回答,面试官直说讲得很清楚
    为什么使用消息队列?我这样回答,
    2023-12-01
    为什么要使用消息队列,六个字总结:解耦、异步、消峰.1)解耦.传统模式下系统间的耦合性太强。怎么说呢,举个例子:系统 A
  • 面对AI的兴起,从人类发展到个人发展,普通人应当如何抉择?
    面对AI的兴起,从人类发展到个人
    2023-12-08
    这一周被各种 AI 卷的不行,从 ChatGPT 4.0 上线到百度文心一言发布会,再到微软的 Microsoft 36
  • UE5 材质 雨滴shader
    UE5 材质 雨滴shader
    2023-12-07
    潮湿效果.物体表面是如何变湿的?.物体表面吸水使颜色变深.潮湿的颜色会变得暗淡且饱和.实现.增加饱和度且变暗.潮湿的物体