打卡第一天

##leetcode704 https://leetcode.cn/problems/binary-search/

这个题的难点是边界的处理,主要是包括这几点:

1.right是要等于数组的长度还是等于长度减一

2.循环的便利条件是left<right还是left<=right

3.在区间缩小时是mid=left还是mid=left+1

以后只用right=长度减一,当区间我们设置为mid=left+1时,此时可能left==right,因此循环条件要设置为left<=right;为了防止超出数组的下标,我们选择right=length-1,让我们更轻松使用nums[riht]而不用考虑下标越界的问题。

还有一个需要注意的点是mid=left+(right-left)/2,而不是mid=(left+right)/2;

因为left+right可能会超出int的最大值,而right不超过,第二种得到的方法比right小,所以第二种也不会超过,因此第二种比较安全

##leetcode27  力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

这个题前几天刚做过,双指针的方法,不过我思维僵化,当时只记得双指针方法left是数组头下标,right是尾下标,但是这个双指针都是从0开始,right在前,left在后,一旦nums[right]==var;此时left不动,right前移一位,当条件不成立时,就将不等于var时,将nums[left]=nums[right],left++;right++;其思想就是通过让right指针去探路,一旦发现不等于var的值,就让lef指针来记录,等于就跳过,最后返回长度时直接返回left值,而不是left+1,因为每次不等var,left都会+1,已经抵消了初始下表为0,而要求返回长度的影响,这个题跟删除某链表的倒数第n个节点优点类似,left和right都是在同一侧,而不是两端的端点

https://leetcode.cn/problems/remove-nth-node-from-end-of-list/

##工作上

###<dependencymanager>和<dependencies>的 区别

两者都可以引入包,但是<dependencymanager>也仅仅是引入了包,其子模块的pom文件没有继承这些包(如果子模块种的相关pom文件不声明引入这些依赖,是没法使用这些包的)父模块的pom文件中如果<dependencies>引入了包,子模块pom中中不声明引入这些依赖,也能使用这些包,那<dependencymanager>有什么作用呢?其主要作用就是包的版本管理,其子模块的pom文件虽然需要声明才能使用<dependencymanager>中声明的包,但是可以只声明g和a而不声明<version>和<scope>,其会跟据ga寻找父模块的pom中<dependencymanager>中的相同的ga,找到匹配项后,根据匹配项的vs(<version><scope>)来作为自己的版本号和作用域,便于版本号的发生变化时进行修改如果子模块pom除了声明ga还声明了vs,其vs根据自己声明的保持一致,而不再找父模块pom中的相关设置,为了防止包冲突,即:项目依赖了a和b两个包,但是a本身也依赖b,但是两个依赖的版本不同,为了排除a依赖中b的影响,会使用<excludes>标签来排除影响。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值