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

LeetCode 刷题【34. 在排序数组中查找元素的第一个和最后一个位置、35. 搜索插入位置】

34. 在排序数组中查找元素的第一个和最后一个位置

自己做

解:二分查找

class Solution {
public://二分查找int halfFind(vector<int> nums, int begin, int end, int target){if(begin > end)         //找不到的情况return -1;int mid = (begin + end) / 2;if(nums[mid] == target) //找到的情况return mid;if(nums[mid] > target)  //中轴偏大,往左边继续找return halfFind(nums, begin, mid - 1, target);if(nums[mid] < target)  //中轴偏小,往右边继续找return halfFind(nums, mid + 1, end, target);return 0;      //应付LeetCode}vector<int> searchRange(vector<int>& nums, int target) {//二分查找到元素int len = nums.size();if(len == 0)                //数组为空return {-1,-1};            int k = halfFind(nums, 0, len - 1, target);if(k == -1)                 //元素不存在return {-1,-1};//元素存在的情况int begin = k, end = k;//先往左边找while(begin >= 0 && nums[begin] == target)begin--;//再往右边找while(end < len && nums[end] == target)end++;return {begin + 1,end - 1};}
};

35. 搜索插入位置

自己做

解:二分查找

class Solution {
public://二分查找int halfFind(vector<int> nums, int begin, int end, int target){if(begin > end)         //找不到的情况return end + 1;     //返回要插入的下标int mid = (begin + end) / 2;if(nums[mid] == target) //找到的情况return mid;if(nums[mid] > target)  //中轴偏大,往左边继续找return halfFind(nums, begin, mid - 1, target);if(nums[mid] < target)  //中轴偏小,往右边继续找return halfFind(nums, mid + 1, end, target);return 0;      //应付LeetCode}int searchInsert(vector<int>& nums, int target) {int len = nums.size();return halfFind(nums, 0, len - 1, target);}
};

http://www.xdnf.cn/news/17437.html

相关文章:

  • Redis7集群搭建与原理分析
  • 基于Web的交互式坐标系变换矩阵计算工具
  • BGP综合实验练习作业
  • 使用OAK相机实现智能物料检测与ABB机械臂抓取
  • 从零构建TransformerP2-新闻分类Demo
  • Langchain入门:构建一个基于SQL数据的问答系统
  • 後端開發技術教學(三) 表單提交、數據處理
  • 汽车零部件深孔加工质控升级:新启航激光频率梳 3D 测量解决传统光学扫描遮挡
  • 应急响应流程
  • ADB 命令执行模块开发:双模式(普通模式Shell交互模式)实现、线程安全与资源管理优化
  • Nextcloud容器化部署新范式:Docker与Cpolar如何重塑私有云远程访问能力
  • 为什么输入 URL 后会显示页面?HTTP 协议的 “幕后操作”
  • docker缓存目录转移设置和生效过程
  • WPF 双击行为实现详解:DoubleClickBehavior 源码分析与实战指南
  • linux信号量和日志
  • 杂谈 001 · VScode / Copilot 25.08 更新
  • 【系统编程】进程初识
  • 用JOIN替代子查询的查询性能优化
  • GESP2023年12月认证C++一级( 第三部分编程题(2)小杨报数)
  • 行业速览:中国新能源汽车市场格局与关键趋势
  • 解码华为云安全“铁三角”:用“分层防御”化解安全挑战
  • mac电脑解决在不同项目需要频繁手动切换node版本的困扰
  • JDY后端一二三面经(已OC)
  • 分享超图提供的、很不错的WebGIS学习资源
  • Dixon‘s 因子分解法——C语言实现
  • 基于R语言,“上百种机器学习模型”学习教程 | Mime包
  • 手搓MCP全流程指南:从本地开发部署到PyPI公开发布
  • 快速了解svm算法
  • 使用Python将中文语音翻译成英语音频
  • 【无标题】无名管道