代码随想录 452 最小数量弓箭引爆气球 453 无重叠区间 763 划分字母区间

news/2024/11/22 17:22:18/

452 最小数量弓箭引爆气球

代码如下

func findMinArrowShots(points [][]int) int {

            if len(points) == 0 {  //如果气球数量为0 则返回0

                return 0

            }

            res := 1  定义弓箭数量

             sort.Slice(points,func(i,j int)bool{   //按照气球的左边界大小排序

                 return points[i][0] < points[j][0]

             })

             for i := 1 ; i < len(points) ; i++ { //遍历气球数组

                 if points[i-1][1] < points[i][0] {  //如果上一个气球的右边界小于当前气球的左边界,弓箭数加1 

                     res++ 

                 }else { 

                     points[i][1] = min(points[i-1][1],points[i][1]) //否则说明两个气球重合,则需要判断下一个气球是否能够一起被射爆,所以需要更新右边界

                 }

             }

             return res 

}

func min(a,b int) int {

    if a < b {

        return a

    }else {

        return b

    }

}

453 无重叠区间

代码如下

func eraseOverlapIntervals(intervals [][]int) int {

           sort.Slice(intervals,func(i,j int)bool{  //按照数组的左边界大小排序

               return intervals[i][0] < intervals[j][0]  

           })

           res := 0 

           for i := 1 ; i < len(intervals) ; i++ {  

               if intervals[i-1][1] > intervals[i][0] {  //如果当前数组的左边界小于上一个数组的右边界,说明两个数组重合

                      res++ //结果加1 

                      intervals[i][1] = min(intervals[i-1][1],intervals[i][1]) //此时需要继续判断是否与下一个数组重合,所以需要更新右边界,右边界为两个数组右边界的最小值

               }

           }

           return res 

}

func min(a,b int) int {

    if a < b {

        return a 

    }else {

        return b 

    }

}

763 划分字母区间

代码如下

func partitionLabels(s string) []int {

         var res []int  //目标数组

         var mark [26]int   //定义一个记录该字母最远下标的数组

         left,right := 0,0 //左右边界

         for i := 0 ; i < len(s) ; i++ { //循环确定最远下标

             mark[s[i]-'a'] = i

         }

         for i := 0 ; i < len(s) ; i++ { 

             right = max(right,mark[s[i]-'a']) //目标元素的最远下标和之前记录的最远下标取一个最大值

             if right == i {  //如果当前下标已经等于最远下标了则记录该结果长度

                 res = append(res,right-left+1)

                 left = i + 1     //并更新左边界

             }

         }

         return res 

        

}

func max(a,b int) int {

    if a > b {

        return a 

    }else {

        return b 

    }

}


http://www.ppmy.cn/news/58071.html

相关文章

c++ 11标准模板(STL) std::vector (三)

定义于头文件 <vector> template< class T, class Allocator std::allocator<T> > class vector;(1)namespace pmr { template <class T> using vector std::vector<T, std::pmr::polymorphic_allocator<T>>; }(2)(C17…

CSS布局基础(字体,文本,背景)

字体 常见字体设置 body {font-family: font-family: "Microsoft YaHei", Tahoma, Arial, Hiragino Sans GB,sans-serif; }浏览器从前到后匹配&#xff0c;找到可用字体结束&#xff0c;都没匹配上&#xff0c;使用浏览器默认字体 常用字号 不同浏览器默认字号可…

【6. 激光雷达接入ROS】

欢迎大家阅读2345VOR的博客【6. 激光雷达接入ROS】&#x1f973;&#x1f973;&#x1f973; 2345VOR鹏鹏主页&#xff1a; 已获得CSDN《嵌入式领域优质创作者》称号&#x1f47b;&#x1f47b;&#x1f47b;&#xff0c;座右铭&#xff1a;脚踏实地&#xff0c;仰望星空&#…

维度表设计方法

第一步&#xff1a;选择维度或新建维度。作为维度建模的核心&#xff0c;在企业级数 据仓库中必须保证维度的唯一性。以淘宝商品维度为例&#xff0c;有且只允许有 一个维度定义。 第二步&#xff1a;确定主维表。此处的主维表一般是 ODS 表&#xff0c;直接与业务 系统同步。以…

聚观早报|苹果版余额宝四天吸金69亿;​微软拟推出私有版ChatGPT

今日要闻&#xff1a;苹果版余额宝四天吸金69亿元&#xff1b;称微软拟推出私有版ChatGPT&#xff1b;特斯拉上调Model 3、Model Y售价&#xff1b;好莱坞编剧将举行15年来首次罢工&#xff1b;字节跳动要在美国卖书了 苹果版余额宝四天吸金69亿元 早些时候&#xff0c;苹果推…

【python知识】__init__.py的来龙去脉

目录 一、说明 二、包-模块-函数结构 2.1 包、模块、函数的关系 2.2 __init__.py的角色 2.3 识别包 三、__init__.py的功效 3.1 建立一个工程包 3.2 用__init__.py简化工程包 3.3 过滤 3.4 设置顶级全局变量 四、其它更多用法 4.1 高级应用 4.3 Python 3.3 及更高…

【Python】序列类型①-列表

文章目录 1. 前言2. 列表的定义3. 列表的下标访问3.1 嵌套列表的下标 4. 列表的切片操作5. 列表的遍历5.1 使用for循环进行遍历5.2 while循环进行遍历 6.添加列表元素6.1 使用append方法添加元素6.2 使用insert方法添加元素 7. 列表的拼接7.1 使用 进行拼接7.2 使用extend 进行…

语义分割学习笔记(五)U-net网络

推荐课程&#xff1a;U-Net网络结构讲解(语义分割)_哔哩哔哩_bilibili 感谢博主霹雳吧啦Wz 提供视频讲解和源码支持&#xff0c;真乃神人也&#xff01; 目录 1. U-net网络模型 2. 分割效果 3. U-Net源码解析(Pytorch版) 4. 测试结果 1. U-net网络模型 U-Net网络由两部分…