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

代码随想录算法训练营第一天 | leetcode 704 27 977

  • 第一题二分查找
    简答回答:经典的二分查找,采用的是左闭右闭区间,主要需要注意的就是右区间的下标
    代码如下:class Solution { public int search(int[] nums, int target) { int left = 0;//左下标 int right = nums.length-1;//右下标 //循环条件 while(left<=right){ //二分查找点 int mid = (left+right)/2; if(nums[mid]==target){ return mid; }else if(nums[mid]<target){ left++; }else{ right--; } } //没找到返回-1 return -1; } }
  • 第二题移除目标元素
    简要回答:因为题目不用在意前k个元素之后的元素,也不要求前k个元素的顺序,所以可以采用双指针解法,把前指针需要移除的元素用后指针满足条件的值直接覆盖
    注意:考虑到数组元素全都是目标元素,需要注意右指针查找满足条件元素时的下标,主要就是注意循环条件的下标
    代码:class Solution { public int removeElement(int[] nums, int val) { int k = 0; int left = 0; int right = nums.length-1; //循环条件,带等号是因为k++是后加 while(left<=right){ if(nums[left]!=val){ k++; left++; }else{ //查找时循环条件 while(right>=left){ if(nums[right]==val){ right--; }else{ nums[left]=nums[right]; right--; break; } } } } return k; } }
  • 第三题 有序数组的平方
    简要回答:我使用的是直接把平方加入到新数组然后对新数组进行排序
    一个新思路:题目数组是非递减的,可以采用双指针比较两端平方的大小,对新数组从后往前进行赋值
http://www.rkmt.cn/news/6577.html

相关文章:

  • 【SPIE出版】第五届计算机图形学、人工智能与数据处理国际学术会议
  • 快速边缘块稀疏贝叶斯学习MATLAB实现
  • SpringAI接入DeepSeek大模型实现流式对话
  • 通知语音播报功能,解锁全新体验
  • 【IEEE冠名,香港中文大学(深圳)主办)第五届IEEE能源工程与电力系统国际学术会议(IEEE-EEPS 2025)
  • C#实现Access表格自增ID的重置
  • 运用深度学习模型实现图像的分类
  • sumifs根据条件求和
  • c++右值引用和移动语义
  • 彩笔运维勇闯机器学习--梯度下降法
  • 项目管理软件产业革命:从工具升级到生产力范式转移
  • 详细介绍:Linux--初识网络
  • lua程序调试方法
  • 提示词工程(Prompt Engineering)是不是“新时代的编程”?
  • python日志记录之logging模块
  • O - Color a Tree
  • 前 k 小问题期末考
  • lvm硬盘分区与不分区优缺点
  • 中电金信能碳虚拟电厂数智化平台破局“双碳”难题
  • milvus创建一个用户管理多个库
  • 为什么ceph新添加的硬盘会自动变为osd
  • OF SF CF ZF 的判断方式以及例子
  • 2025年30个CRM系统盘点:哪款CRM系统适合你的企业? - SaaS软件
  • TSN Qav测试实践
  • 燕千云ITR平台引领服务流管理革命,构建企业客户服务智慧生态
  • Gitee推出革命性MCP Server:AI深度参与开发全流程 开启智能协作新时代
  • 取证 - voasem
  • 【SPIE独立出版|连续多年EI稳定检索】第七届地球科学与遥感测绘国际学术会议(GRSM 2025)
  • Python psutil模块
  • AI赋能CRM:纷享销客智能图像提升终端运营效率