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

【力扣打卡系列】滑动窗口与双指针(三数之和)

坚持按题型打卡&刷&梳理力扣算法题系列,语言为go,Day11

搜索旋转排序数组
  • 题目描述
    在这里插入图片描述
  • 解题思路
    • 单独开一个函数来判断是否被染成蓝色
      • 以与最后一个元素的大小比较来确定在哪个段上
      • 分类讨论target、nums[key]、end的大小情况,来确定此处(nums[key])是否为蓝色
  • 代码参考
func is_blue(nums []int, target int, key int) bool{end := nums[len(nums)-1]if nums[key] > end{return (target <= nums[key]) && (target > end)}else{return (target <= nums[key]) || (target > end)}
}func search(nums []int, target int) int {// 开区间 (-1,n)left := -1right := len(nums)for left+1<right{mid := left + (right-left)/2if is_blue(nums,target,mid){right = mid}else{left = mid}}if right==len(nums) || nums[right] != target{return -1}return right
}
  • tips
    • 注意此处要取等号!
      • target <= nums[key]
    • is_blue函数的返回值为bool
    • 注意此处开区间的范围是(-1,nums[n])
    • 注意先判断返回值为-1的情况(条件为:right==len(nums) || nums[right] != target)

http://www.mrgr.cn/news/61438.html

相关文章:

  • 基于SpringBoot框架+Vue2.x+Element-UI技术的在线博客系统设计与实现
  • scala基础学习(数据类型)-集合
  • 51c自动驾驶~合集46
  • 【MySQL8】查看/设置编码格式、排序规则和存储引擎
  • 在Linux上如何让ollama在GPU上运行模型
  • std::vector
  • 昆明理工大学MBA工商管理课程表
  • 【云原生】云原生后端详解:架构与实践
  • 4款高效的中英文在线翻译工具推荐,让英语不再是障碍。
  • 详细指南:解决Garmin 手表无法与电脑连接的问题
  • LCR 024. 反转链表 最细图片逐行解析过程
  • VSCode 设置环境变量(WSL 2)
  • df -h 和df -i 的区别
  • AcWing 1451:单链表快速排序
  • crash工具使用
  • GPT避坑指南:如何辨别逆向、AZ、OpenAI官转
  • linux网络编程7——协程设计原理与汇编实现
  • 【网络】传输层协议TCP
  • Training language models to follow instructions with human feedback解读
  • 国密和国际密
  • 拥塞控制与TCP子问题(粘包问题,异常情况等)
  • 2024/10/29 英语每日一段
  • PyMol3.0 Educational Version激活教程(激活一次可用半年)
  • LCR 027. 回文链表 不利用额外空间实现快慢指针
  • OSError: no library called “cairo-2“ was found no library called “cairo“ was
  • 84674