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

【代码随想录算法训练营-第一天】【数组】704. 二分查找、27. 移除元素

LeetCode-704.二分查找

【错误】第一遍提交的代码

  • 主要错误点:
    • 没弄清楚区间的定义导致:r 在定义处的赋值和 if 判断之后 r 的复制没有想清楚;
    • 没有搞清楚判断循环结束的条件;
    • 没有搞明白区间的定义,r 和 l 如何赋值,如何判断;
class Solution {public int search(int[] nums, int target) {int l = 0;// 这里的赋值和while的判断条件矛盾,会陷入死循环,导致超时int r = nums.length - 1; if (target < nums[0] || target > nums[nums.length - 1]) {return -1;}while (l <= r) {int mid = (r + l) / 2;if (nums[mid] == target) {return mid;}if (nums[mid] < target) {l = mid+1;}if (nums[mid] > target) {r = mid+1;}}return -1;}
}

【正确】第二遍提交代码

  • 搞清楚区间的定义,并判断左闭右开的区间范围,如何判断r 和 l 的赋值,以及while结束的条件;
class Solution {public int search(int[] nums, int target) {
int l = 0;int r = nums.length;if (target < nums[0] || target > nums[nums.length - 1]) {return -1;}while (l < r) {int mid = (r + l) / 2;if (nums[mid] == target) {return mid;}if (nums[mid] < target) {l = mid+1;}if (nums[mid] > target) {r = mid;}}return -1;}
}

LeetCode-27.移除元素

【正确】双指针一次AC!

  • 因为不用考虑末尾的元素,所以只要保证fast指针每次有和val相等的元素就跳过,然后赋值给slow指针指向的元素即可。
  • 代码随想录给出的是相向双指针,我用的是同向,测试了一下结果差不多。
class Solution {public int removeElement(int[] nums, int val) {int slow = 0, fast = 0;while (fast < nums.length) {if (nums[fast] == val) {fast++;continue;}nums[slow] = nums[fast];fast++;slow++;}return slow;}
}
http://www.lryc.cn/news/248438.html

相关文章:

  • [教程] 一文进阶Redis
  • 通用plantuml模板头
  • 网站公安备案流程
  • 关于使用若依,并不会自动分页的解决方式
  • 在PyCharm中配置PyQt5环境
  • SIFI 极值点拟合的详细推导过程
  • Kontakt v7.7.2(音频采样器)
  • Drawer抽屉(antd-design组件库)简单用法
  • Android控件全解手册 - 多语言切换完美解决方案(兼容7.0以上版本)
  • Android-P CameraSerivce
  • 21.Oracle的程序包(Package)
  • Spring 日志
  • webpack如何处理浏览器的样式兼容问题postcss
  • idea方法注释模版设置
  • NX二次开发UF_CURVE_create_isocline 函数介绍
  • 从0开始学习JavaScript--JavaScript 模板字符串的全面应用
  • 开源 vs 闭源:数字化时代的技术选择
  • Spring Boot项目Service类单元测试自动生成
  • Typescript中 interface 和 type 的区别是什么?
  • W2311294-万宾科技可燃气体监测仪怎么进行数据监测
  • Elasticsearch:向量搜索 (kNN) 实施指南 - API 版
  • 704 二分查找 day1
  • Python面试破解:return和yield的细腻差别
  • 云时空社会化商业 ERP 系统 service SQL 注入漏洞复现
  • Vue3-Pinia
  • 数据挖掘之时间序列分析
  • iOS NSDate的常用API
  • 谱方法学习笔记-下(超详细)
  • iOS--UIPickerView学习
  • Docker安装Elasticsearch以及ik分词器