代码随想录算法训练营第一天 | 数组理论基础 、 704.二分查找 、27.移除元素

代码随想录算法训练营第一天 | 数组理论基础 、 704.二分查找 、27.移除元素

数组理论基础

题目建议 了解一下数组基础,以及数组的内存空间地址,数组也没那么简单。
文章链接

704.二分查找

题目建议熟悉 根据 左闭右开,左闭右闭 两种区间规则 写出来的二分法。

题目链接: 704.二分查找
文章链接
视频链接

思路这道题目的前提是数组为有序数组,同时题目还强调数组中无重复元素,因为一旦有重复元素,使用二分查找法返回的元素下标可能不是唯一的,这些都是使用二分法的前提条件,当大家看到题目描述满足如上条件的时候,可要想一想是不是可以用二分法了

注意问题二分查找涉及的很多的边界条件,逻辑比较简单,但就是写不好。例如到底是 while(left < right) 还是 while(left <= right),到底是right = middle呢,还是要right = middle - 1呢?
大家写二分法经常写乱,主要是因为对区间的定义没有想清楚,区间的定义就是不变量。要在二分查找的过程中,保持不变量,就是在while寻找中每一次边界的处理都要坚持根据区间的定义来操作,这就是循环不变量规则。

第一印象看到题目第一时间 想到的是用暴力解法 利用for循环进行解题
学习过程看完代码随想录后发现 利用二分查找法 可以缩短更多的时间
实现困难初步接触二分查找法 先是理解了左闭右闭的写法 但是第一时间没有很好的理解左闭右开的写法 导致在这方面的思考花费了一些时间
收获 在看完视频和文章讲解 并反复推敲代码后 逐步理解了所有的解题思路 初步掌握了二分查找法的精髓 再接再厉 继续坚持!
相关题目推荐 35.搜索插入位置 34.在排序数组中查找元素的第一个和最后一个位置 69.x 的平方根 367.有效的完全平方数

27.移除元素

题目建议熟悉 双指针法

27.移除元素
文章讲解
视频讲解

思路要知道数组的元素在内存地址中是连续的,不能单独删除数组中的某个元素,只能覆盖。

双指针法时间复杂度:O(n) 空间复杂度: O(1)。
双循环暴力解法时间复杂度: O(n^2) 空间复杂度: O(1)。

第一印象没太有思路 双循环 也不能很好的写出来
学习过程看完代码随想录后发现 双指针法非常的神奇 ,并且大大缩短了代码运行时间
收获 在看完视频和文章讲解 并反复推敲代码后 逐步理解了所有的解题思路 初步掌握了双指针法的精髓 希望能将其应用到更多方面 再接再厉 继续坚持!

相关题目推荐 26.删除排序数组中的重复项 283.移动零 844.比较含退格的字符串 977.有序数组的平方

总结

今天总共用了大约两个小时的时间 完成了对视频和文章的学习 并且自己手动敲写了 两个题目的代码 今天整体难度较为简单
自身基础比较差,希望能通过学习 进行完善。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值