33,Java开发热门前沿知识

示例 1:

输入:nums = [4,5,6,7,0,1,2], target = 0

输出:4

示例 2:

输入:nums = [4,5,6,7,0,1,2], target = 3

输出:-1

示例 3:

输入:nums = [1], target = 0

输出:-1

二:思路

===================================================================

思路: 1.因为题目说了这是一个升序的数组,然后变成了旋转数组,那么就可以用二分法

2.那么关于使用二分法:这里分了两步

(1):利用nums[mid] 和 nums[0],来进行判断所分出的两部分中那一部分为有序的

如果nums[mid] > nums[0]的话,那么mid左边的序列为有序的

如果nums[mid] < nums[0]的话,那么mid右边为有序序列

(2):判断出有序序列后,接下来就是判断target是否在该序列中,

如果在左边有序的序列中 nums[l] <= target && target < nums[mid]

这时右边界条件就得进行变化,r = mid - 1;

否则 那么 target 就在 左边的无序列表当中,那么的话我们就又要判断那部分是和 无序的,和 nums[mid]进行比较。。。 和上方一致,

如果在右边的有序序列中 nums[mid] <= target && target < nums[r]

这时左边界:l = mid + 1;

否则类似上方

(3):注意(target和num[l])和(target和num[r]) 因为每次判断有序的范围是跟已

经判断target在哪个区间以内了,所以需要更新比较的边界值

三:上码

===================================================================

class Solution {

public:

int search(vector& nums, int target) {

/**

思路: 1.因为题目说了这是一个升序的数组,然后变成了旋转数组,那么就可以用二分法

2.那么关于使用二分法:这里分了两步

(1):利用nums[mid] 和 nums[0],来进行判断所分出的两部分中那一部分为有序的

如果nums[mid] > nums[0]的话,那么mid左边的序列为有序的

如果nums[mid] < nums[0]的话,那么mid右边为有序序列

(2):判断出有序序列后,接下来就是判断target是否在该序列中,

如果在左边有序的序列中 nums[l] <= target && target < nums[mid]

这时右边界条件就得进行变化,r = mid - 1;

否则 那么 target 就在 左边的无序列表当中,那么的话我们就又要判断那部分是和 无序的,和 nums[mid]进行比较。。。。和上方一致,

如果在右边的有序序列中 nums[mid] <= target && target < nums[r]

这时左边界:l = mid + 1;

否则类似上方

(3):注意(target和num[l])和(target和num[r]) 因为每次判断有序的范围是跟已

经判断target在哪个区间以内了,所以需要更新比较的边界值

*/

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
img

最后

看完美团、字节、腾讯这三家的面试问题,是不是感觉问的特别多,可能咱们又得开启面试造火箭、工作拧螺丝的模式去准备下一次的面试了。

开篇有提及我可是足足背下了1000道题目,多少还是有点用的呢,我看了下,上面这些问题大部分都能从我背的题里找到的,所以今天给大家分享一下互联网工程师必备的面试1000题

注意不论是我说的互联网面试1000题,还是后面提及的算法与数据结构、设计模式以及更多的Java学习笔记等,皆可分享给各位朋友

最新“美团+字节+腾讯”一二三面问题,挑战一下你能走到哪一面?

互联网工程师必备的面试1000题

而且从上面三家来看,算法与数据结构是必备不可少的呀,因此我建议大家可以去刷刷这本左程云大佬著作的《程序员代码面试指南 IT名企算法与数据结构题目最优解》,里面近200道真实出现过的经典代码面试题

最新“美团+字节+腾讯”一二三面问题,挑战一下你能走到哪一面?

从上面三家来看,算法与数据结构是必备不可少的呀,因此我建议大家可以去刷刷这本左程云大佬著作的《程序员代码面试指南 IT名企算法与数据结构题目最优解》,里面近200道真实出现过的经典代码面试题

[外链图片转存中…(img-sDqEMKRK-1711613497670)]

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值