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

【每日likou】704. 二分查找 27. 移除元素 977.有序数组的平方

  1. 二分查找
    这是一道一看就会,一做就废的题目。
    本题关键:确定target属于左闭右闭区间,还是左闭右开区间。
    思路:
    (1)假设target在左闭右闭区间
    循环条件应该为 left <= right,如果不写等于号,就排查不到num[left]=num[right]=target的情况。
    确定好区间后,right = mid -1.
    (2)假设target在左闭右开区间
    循环条件应该为 left < right,我们定义的是target在[left, right),如果left = right 时,不符合定义了
    确定好区间后,right = mid.
class Solution {public int search(int[] nums, int target) {int left = 0;int right = nums.length - 1;int centerIndex;while(left <= right){centerIndex = (right + left) / 2;if(nums[centerIndex] == target){return centerIndex;}else if(nums[centerIndex] > target){right = centerIndex - 1;}else{left = centerIndex + 1;}}return -1;}
}
  1. 移除元素
class Solution {public int removeElement(int[] nums, int val) {int i = 0;int j = nums.length - 1;while(i <= j){    if(nums[i] != val){i++;}else if(nums[i] == val && nums[j] != val){nums[i] = nums[j];i++; j--;}else if(nums[i] == val && nums[j] == val){j--;}}return i;}
}

977.有序数组的平方
本题关键;
平方最大的数要么在数组的第一个位置,要么在数组的最后一个位置。由此想到双指针法。

class Solution {public int[] sortedSquares(int[] nums) {int[] res = new int[nums.length];int left = 0;int right = nums.length - 1;int cur = nums.length - 1;while(left <= right){if(Math.abs(nums[left])  <= Math.abs(nums[right])){res[cur--] = nums[right] * nums[right];right--;}else if(Math.abs(nums[left])  > Math.abs(nums[right])){res[cur--] = nums[left] * nums[left];left++;}}return res;}
}
http://www.xdnf.cn/news/13649.html

相关文章:

  • Pandas:你的数据分析瑞士军刀![特殊字符]✨
  • DeepCritic: SFT+RL两阶段训练突破LLM自我监督!显著提升大模型的自我批判能力!!
  • 构建康养人才职业成长加速器 —— 智慧康养实训室虚拟仿真建设方案
  • 【笔记】NVIDIA AI Workbench 中安装 CUDA 12.9
  • 其他UML图示例,用到再学习
  • 心理学行业IP变现新趋势:创客匠人赋能个人品牌崛起
  • 去除百度AI图像中包含的水印内容
  • PocketSCP:蛋白质口袋动态时空拓扑可视化分析新方法
  • 华为云Flexus+DeepSeek征文|华为云一键部署高可用版 Dify LLM 应用开发平台实践详解
  • 训练过程中的 Loss ?
  • DeviceNet转Modbus RTU协议转换网关在石油开采行业的应用
  • 常见系统设计
  • 2024蓝桥杯C/C++ B组国赛
  • C primer plus (第六版)第七章 编程练习第4题,第5题
  • SecureRandom.getInstanceStrong() 与虚拟机的爱恨情仇
  • ImportError: cannot import name ‘PfeifferConfig‘ from ‘transformers‘【已解决】
  • 考试中关于机动车安全技术检验标准(如 GB 7258、GB 21861 等)的考核重点有哪些?
  • java单元测试写法
  • Element:Table表头全部或单个表头颜色header-row-style
  • 鸿蒙开发:DevEcoTesting中的稳定性测试
  • 【Python 算法零基础 6.贪心算法】
  • 基于51单片机和8X8点阵屏、独立按键的跳跃躲闪类小游戏
  • 在WordPress中彻底关闭生成缩略图的方法
  • c++经典好题
  • 机器学习基本概念与建模流程
  • day031-Shell自动化编程-数组与案例
  • 【全开源】码小象租车系统源码+uniapp前端+开发文档接口
  • 【粤语ASRTTS】粤语语音识别与合成:重塑粤语智能化标杆
  • android studio开关控制
  • 小知识点二:无刷电机开环控制