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

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.dtcms.com/a/321988.html

相关文章:

  • 哈希法(Java)
  • 【数据结构】排序(sort) -- 计数排序
  • wstool和git submodule优劣势对比
  • select ... for update阻塞
  • 【感知机】感知机(perceptron)学习算法例题及详解
  • 任务管理器如何查看详细的命令行和路径?
  • 安科瑞能源管理系统在某新材料公司光储充一体化项目上的应用
  • 【C++空指针革命】nullptr:告别NULL的终极解决方案与底层实现剖析
  • 在超算中心,除了立式机柜(rack-mounted)还有哪些形式?
  • 官方Windows系统部署下载工具实践指南
  • 遥测自跟踪天线系统组成、特点、功能、工作流程
  • 【普通地质学】地质年代与地层系统
  • 无人机SN模块运行与功能详解
  • Vibe coding现在能用于生产吗?
  • 什么是0.8米分辨率卫星影像数据?
  • C++ WonderTrader源码分析之自旋锁实现
  • nflsoi 8.8 题解
  • CF每日3题(1400-1700)
  • 第9章 AI 安全、可解释性与伦理合规
  • 3天落地企业级应用,JNPF+AI重塑开发效率
  • sqli-labs靶场less46-less50
  • 传送带包裹漏检率↓78%!陌讯动态感知模型在物流分拣的实战优化
  • dMSA 滥用 (BadSuccessor) 导致权限升级:使用 ADAudit Plus 监控关键属性更改
  • Python使用LLM把自然语言翻译成SQL语句
  • 线程组和线程池的基本用法
  • 深入理解 SwiftUI 布局:VStack、HStack 和表单控件全解析
  • 电脑和手机访问网站,自动检测跳转不同网站
  • 将2小时的财报OCR识别录入缩短至5分钟,如何实现财报智能OCR录入
  • 创建一个Vue3项目
  • TLF35584芯片功能总结