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

算法训练营day1 | 704二分查找,27移除元素, 34, 35

已经找到工作,但希望再试试春招,距离春招还剩两个月,加油。


这两道题都刷过很多遍了,没什么好说的直接过。

704

本以为刷了很多次没想到还是做错了,有些小细节要注意。

这里是迭代式的,函数式的也不难。

class Solution {public int search(int[] nums, int target) {int l = 0, r = nums.length - 1;while(l <= r){int mid = (l + r) / 2;if(nums[mid] == target){return mid;}if(nums[mid] > target){r = mid - 1;//这里一开始写的是mid,由于我是取等于所以不能是mid}else if(nums[mid] < target){l = mid + 1;}}return -1;}
}

27

双指针没什么说的。

class Solution {public int removeElement(int[] nums, int val) {int len = nums.length;int i = 0, j = 0;while(j < len){if(nums[j] == val){j++;continue;}nums[i++] = nums[j++];}return i;}
}

刷一下34和35,直接刷代码随想录的时候从来没有刷过拓展题。

34

最开始的想法是通过二分找到一个答案后,往左右两边找到边缘的坐标,但发现这样在极端情况下时间复杂度是o(n),所以还是正常地通过两个二分,一个找左端点一个找右端点吧。

class Solution {public int[] searchRange(int[] nums, int target) {int r = nums.length - 1, l = 0;int ansl = -1;while(l <= r){int mid = (l + r) / 2;if(nums[mid] >= target){if(nums[mid] == target){ansl = mid;}r = mid - 1;}else{l = mid +1;}}int ansr = ansl;r = nums.length - 1;l = 0;while(l <= r){int mid = (l + r) / 2;if(nums[mid] > target){r = mid - 1;}else{if(nums[mid] == target){ansr = mid;}l = mid +1;}}return new int[]{ansl, ansr};}
}

35

class Solution {public int searchInsert(int[] nums, int target) {int l = 0, r = nums.length - 1;int ans = -1, mid = -1;while(l <= r){mid = (l + r) / 2;if(nums[mid] == target){ans = mid;break;}if(nums[mid] > target){r = mid - 1;}else{l = mid + 1;}}if(ans == -1){if(nums[mid] > target){return mid;}else{return mid + 1;}}return ans;}
}

 今天是12.12做的事12.11的任务,明天要补进度了

今天的还算比较简单,加油!


男朋友帮我加了一个洛谷题,好难已经做完了明天再补充细节吧T-T

R194137083

http://www.lryc.cn/news/505032.html

相关文章:

  • 66 基于单片机的太阳能充电、温度检测、档位PWM调速系统
  • RK3576 Android14,内存大于4G时UVC应用无法申请内存
  • 12.12 深度学习-卷积的注意力机制-通道注意力SENet
  • H5 scss 移动端的样式适配
  • 【JAVA】Java项目实战—移动端项目:天气查询APP
  • SpringBoot - 动态端口切换黑魔法
  • Java爬虫技术:挖掘淘宝数据的利器
  • Chromium for Android 浏览器的编译和安装
  • 实景视频与模型叠加融合?
  • Scala的隐式类
  • 常见软件设计模式介绍:三层架构、MVC、SSM、EDD、DDD
  • Springboot技术栈常见问题及搭建步骤
  • session 共享服务器
  • vue2:v-for实现的el-radio-group选中时显示角标,并自定义选中按钮的字体颜色和背景色
  • 【Linux】-学习笔记10
  • 鸿蒙NEXT开发案例:九宫格随机
  • 深度解析:RTC电路上的32.768KHz时钟的频偏及测试
  • Scala的泛型
  • OpenGL ES详解——glUniform1i方法是否能用于设置纹理单元
  • 探索 Janus-1.3B:一个统一的 Any-to-Any 多模态理解与生成模型
  • 论文信息搜集
  • 实操给自助触摸一体机接入大模型语音交互
  • 图表的放大和刷新功能
  • SQLServer利用QQ邮箱做SMTP服务器发邮件
  • flutter 多文本,其中文本下划线往下移动
  • 7.OPEN SQL
  • Python轻松获取抖音视频播放量
  • YOLOv8目标检测(三*)_最佳超参数训练
  • SpringBoot SPI
  • uniappp配置导航栏自定义按钮(解决首次加载图标失败问题)