java数据结构与算法刷题-----LeetCode228:汇总区间

Dify+MCP Server打造禅道AI智能助手 Dify AI与MCP Server结合打造的禅道AI智能助手,实现了项目管理智能化升级。该方案通过大语言模型和自动化工作流,提供四大核心功能:1)自动化报表生成,支持多维度数据统计与可视化;2)禅道系统管理操作,简化产品/项目/任务管理流程;3)基于知识库的智能问答系统;4)数据库灵活查询与可视化输出。系统采用分层架构,通过MCP协议实现AI与数据源解耦,解决了传统禅道在数据孤岛、工具碎片化等问题。实际应用验证了其在用户管理、任务创建、Bug处理等场景的高效性,显著提升了项目管理效率。 阅读详情
java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.youkuaiyun.com/grd_java/article/details/123063846

在这里插入图片描述

  1. 思路分析

双指针,left代表区间最左边,right逐渐后移,当发现right指向的元素,不是left依次递增的,比如12346,最终right指向6,不是left指向的1依次递增过来的,因为跳过了5,因此记录区间1->4。然后从6继续向后判断

  1. 代码
    在这里插入图片描述
class Solution {
    public List<String> summaryRanges(int[] nums) {
        ArrayList<String> list = new ArrayList<>();
        int left = 0,right,len = nums.length;
        for (right = left+1;right<= len;right++){
            if(right==len || nums[right] != nums[left]+(right-left)){//如果right当前下标元素不是left递增过来的,就返回区间
            //使用StringBuilder是为了效率更高
                StringBuilder stringBuilder = new StringBuilder(Integer.toString(nums[left]));
                if(right-1 > left) stringBuilder.append("->"+Integer.toString(nums[right-1]));
                list.add(stringBuilder.toString());
                left = right;
            }
        }
        return list;
    }
}

刷题一定要坚持,总结套路,不单单要把题做出来,要举一反三,也要参考别人的思路,学习别人解题的优点,找出你觉得可以优化的点。

  1. 单链表解题思路:双指针、快慢指针、反转链表、预先指针
  1. 双指针:对于单链表而言,可以方便的让我们遍历结点,并做一些额外的事
  2. 快慢指针:常用于找链表中点,找循环链表的循环点,一般快指针每次移动两个结点,慢指针每次移动一个结点。
  3. 反转链表:通常有些题,将链表反转后会更好做,一般选用三指针迭代法,递归的空间复杂度有点高
  4. 预先指针:常用于找结点,比如找倒数第3个结点,那么定义两个指针,第一个指针先移动3个结点,然后两个指针一起遍历,当第一个指针遍历完成,第二个指针指向的结点就是要找的结点
  1. 数组解题思路:双指针、三指针,下标标记
  1. 双指针:多用于减少时间复杂度,快速遍历数组
  2. 三指针:多用于二分查找,分为中间指针,左和右指针
  3. 下标标记:常用于在数组范围内找东西,而不想使用额外的空间的情况,比如找数组长度为n,元素取值范围为[1,n]的数组中没有出现的数字,遍历每个元素,然后将对应下标位置的元素变为负数或者超出[1,n]范围的正数,最后没有发生变化的元素,就是缺少的值。
  4. 差分数组:对差分数组求前缀和即可得到原数组
  1. 用差值,作为下标,节省空间找东西。比如1900年到2000年,就可以定义100大小的数组,每个数组元素下标的查找为1900。
  2. 前缀和数组,对于数组 [1,2,2,4],其差分数组为 [1,1,0,2],差分数组的第 ii个数即为原数组的第 i-1 个元素和第 i个元素的差值,也就是说我们对差分数组求前缀和即可得到原数组
  1. 前缀和:假设有一个数组arr[1,2,3,4]。然后创建一个前缀和数组sum,记录从开头到每个元素区间的和。第一个元素是0。第二个元素,保存第一个和sum[1] = sum[0]+arr[0],第二个元素,保存第二个和sum[2] = sum[1]+arr[1]
  2. 位运算,异或。不使用额外空间找东西可用
  1. 任何数异或0 都为本身。a^0 = a
  2. 自己异或自己 = 0。a^a = 0
  3. 满足交换律:aba = baa = b(aa) = b^0 = b
  1. 栈解题思路:倒着入栈,双栈
  1. 倒着入栈:适用于出栈时想让输出是正序的情况。比如字符串’abc’,如果倒着入栈,那么栈中元素是(c,b,a)。栈是先进后出,此时出栈,结果为abc。
  2. 双栈:适用于实现队列的先入先出效果。一个栈负责输入,另一个栈负责输出。
【DeepSeek实战】1、DeepSeek民用级开发全指南:从0到1掌握AI应用开发与模型蒸馏实战 DeepSeek创新性地打破了传统AI开发的技术壁垒,通过双模型架构(DeepSeek-V3和R1)实现普惠化与专业化并重。其核心优势包括:零代码操作、浏览器直接使用、中文提示词控制及低成本(2元/百万token)。用户通过简单三步(注册-配置-使用)即可快速开启AI之旅,平台提供$50免费额度支持2个月高频使用。 四大核心应用场景: 办公自动化:周报撰写、PPT生成、数据分析一键完成 内容创作:提供爆款标题生成、垂直领域写作模板 学习辅助:支持文档解析、错题讲解、知识图谱构建 生活服务:个性化行程规划 阅读详情

相关推荐

从零开始写一个RTSP服务器(一)RTSP协议讲解

从零开始写一个RTSP服务器系列 从零开始写一个RTSP服务器(一)不一样的RTSP协议讲解 从零开始写一个RTSP服务器(二)RTP传输H.264(待写) 从零开始写一个RTSP服务器(三)一个传输H.264的RTSP服务器(待写) 从零开始写一个RTSP服务器(四)RTP传输AAC(待写) 从零开始写一个RTSP服务器(五)一个传输AAC的RTSP服务器(待写) 从零开始写一个RTSP服务器(...

JT同学的博客 7万+

228、汇总区间(Summary Ranges)

228、汇总区间(Summary Ranges) 题目: 给定一个无重复元素的有序整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。 列表中的每个区间范围 [a,b] 应该按如下格式输出: "a->b" ,如果 a != b "a" ,如果 a == b 示例 1: 输入:nums = [0,1,2,4,5,7] 输出:["0->2","4-&gt

南极没有熊的博客 394

从零到一:STM32CubeMX虚拟串口开发中的常见陷阱与优化策略

本文深入探讨了STM32CubeMX在USB虚拟串口开发中的常见问题与优化策略,涵盖数据流吞吐量瓶颈、实时性约束等核心挑战。通过实战案例和代码示例,详细解析了波特率同步异常、数据丢失等问题的解决方案,并提供了DMA配置和中断优先级调优的高级技巧,帮助开发者提升STM32虚拟串口的性能和可靠性。

weixin_29164185的博客 370

leetcode 228. 汇总区间(Java版)

题目 示例 1: 输入:nums = [0,1,2,4,5,7] 输出:["0->2","4->5","7"] 解释:区间范围是: [0,2] --> "0->2" [4,5] --> "4->5" [7,7] --> "7" 示例 2: 输入:nums = [0,2,3,4,6,8,9] 输出:["0","2->4","6","8->9"] 解释:区间范围是: [0,0] --> "0" [2,4] --> "2->4" [6,6

寒泉 6万+

app逆向分析案例-95分

先把justtrusmeplus打开设置好95分,开始抓包,得到结果为: https://www.95fenapp.com/api_goods/list/v3.0?is_all=1&keywords=%E7%A7%91%E6%AF%94& page=1&page_size=20 &publish_timestamp=0 &scene=2&scene_type=95fen_android_search_personal&sn=SearchList

weixin_41763171的博客 2742

FPGA调试利器:VIO与ILA在Vivado中的实战应用指南

本文详细介绍了Vivado中FPGA调试工具VIO与ILA的实战应用技巧。VIO作为虚拟输入/输出工具,可实时调整参数;ILA作为集成逻辑分析仪,能高效捕获内部信号。文章通过具体案例展示了如何配置ILA采样深度、触发条件,以及VIO的动态参数调整功能,帮助开发者提升上板调试效率,解决常见通信失败、数据不同步等问题。

weixin_42553471的博客 424

leetcode--python--228

228. 汇总区间 给定一个无重复元素的有序整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。 列表中的每个区间范围 [a,b] 应该按如下格式输出: “a->b” ,如果 a != b “a” ,如果 a == b class Solution: def summaryRanges(self, nums: List[int]) -> List

AWhiteDongDong的博客 337

从零到一:手把手教你构建自定义ReaxFF力场参数

本文手把手教你从零构建自定义ReaxFF力场参数,详解反应力场的动态键序机制与参数化逻辑。通过LAMMPS实战演示,涵盖训练数据准备、参数优化算法选择及性能优化技巧,助力研究人员精准模拟化学反应过程。适用于材料科学、催化研究等领域,特别适合已掌握分子动力学基础的进阶用户提升力场开发能力。

weixin_28365523的博客 1057

【LeetCode】228. Summary Ranges 汇总区间(Easy)(JAVA)

【LeetCode】228. Summary Ranges 汇总区间(Easy)(JAVA) 题目地址: https://leetcode.com/problems/summary-ranges/ 题目描述: You are given a sorted unique integer array nums. Return the smallest sorted list of ranges that cover all the numbers in the array exactly. That is, e

qq_16927853的博客 257

语音增强评价指标全解析:从MOS到eSTOI的实战指南

本文全面解析了语音增强领域的核心评价指标,包括主观评价的黄金标准MOS,以及PESQ、STOI、eSTOI等关键客观指标。文章详细阐述了各指标的原理、适用场景与实战计算方法,并提供了Python代码示例,旨在帮助开发者和研究者建立科学的评估体系,以平衡语音可懂度与音质,从而优化算法效果。

yhn456789的博客 1199

部署与可视化系统:移动端落地保姆级教程:YOLOv8 转换为 NCNN 并封装进 Android App 调用摄像头实时检测

本文介绍了在移动端部署YOLOv8模型的最佳实践。通过实测数据对比,采用NCNN框架在骁龙865设备上可实现35+FPS的实时推理性能。文章详细分析了NCNN相比TFLite、MNN等框架的优势,包括更高的ARM CPU性能、更优的Vulkan GPU加速和更小的模型体积。同时提供了从PyTorch模型到NCNN格式的完整转换流程,包括FP16优化和INT8量化方法,并重点解析了YOLOv8特有的输出格式处理要点。建议开发者先在Python环境验证NCNN推理流程,再部署到Android平台,以确保最佳性能

ZXSXJ的博客 209

【刷题1】LeetCode 17. 电话号码的字母组合 java题解

题目 https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/ 代码 class Solution { //数字到字母的映射 char[][] map=new char[][]{{'a','b','c'},{'d','e','f'},{'g','h','i'}, {'j','k','l'},{'m','n','o'},{'p','q','r','s'}, {'t','u','v'},{'w

乾坤未定,你我皆是黑马 365

算法 | 基于MATLAB的增量式SVD技术综述:实现方法、代码示例与应用实践

效率提升:较传统SVD降低计算复杂度从On3O(n^3)On3至On2O(n^2)On2实时性:支持毫秒级动态数据更新资源友好:内存占用降低60%-80%[5]

尘世冰封的专栏 486

Java实现 LeetCode 228 汇总区间

228. 汇总区间 给定一个无重复元素的有序整数数组,返回数组区间范围的汇总。 示例 1: 输入: [0,1,2,4,5,7] 输出: [“0->2”,“4->5”,“7”] 解释: 0,1,2 可组成一个连续的区间; 4,5 可组成一个连续的区间。 示例 2: 输入: [0,2,3,4,6,8,9] 输出: [“0”,“2->4”,“6”,“8->9”] 解释: 2,3,...

南 墙 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【简单】力扣算法题解析LeetCode228:汇总区间

给定一个无重复元素的有序整数数组 nums,返回恰好覆盖所有数字的最小有序区间列表。连续数字合并为 a->b 格式,单独数字保留原值。解题思路:遍历数组,用双指针标记连续区间的起止位置。若区间长度为1,直接添加数字;否则合并为 a->b 格式。

ylumwd的博客 716

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

LeetCode题练习与总结:汇总区间--228

本文详细介绍了如何解决给定无重复元素有序整数数组的最小有序区间范围列表问题,包括解题思路、代码实现、时间复杂度分析及关键知识点总结。

一直学习永不止步 1602

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【LeetCode刷题】 题目汇总 -java

数组 简单 1、两数之和 https://blog.youkuaiyun.com/m0_56698268/article/details/123565989 26、删除有序数组中的重复项 https://blog.youkuaiyun.com/m0_56698268/article/details/123566099 27、移除元素 https://blog.youkuaiyun.com/m0_56698268/article/details/123566175 35、搜索插入位置 https://blog.youkuaiyun.com

m0_56698268的博客 1546

JAVA程序设计:汇总区间(LeetCode:228)

给定一个无重复元素的有序整数数组,返回数组区间范围的汇总。 示例 1: 输入: [0,1,2,4,5,7] 输出: ["0->2","4->5","7"] 解释: 0,1,2 可组成一个连续的区间;4,5 可组成一个连续的区间。 示例 2: 输入: [0,2,3,4,6,8,9] 输出: ["0","2->4","6","8->9"] 解释: 2,3,4 可组成一个...

信仰.的博客 401

LeetCode:汇总区间【228】

LeetCode:汇总区间【228】 题目描述 给定一个无重复元素的有序整数数组,返回数组区间范围的汇总。 示例 1: 输入: [0,1,2,4,5,7] 输出: ["0->2","4->5","7"] 解释: 0,1,2 可组成一个连续的区间;4,5 可组成一个连续的区间。 示例 2: 输入: [0,2,3,4,6,8,9] 输出: ["0","2->4...

weixin_30621919的博客 114

leetcode算法228

一、leetcode算法1、汇总区间。

2401_85377266的博客 306

力扣面试150 汇总区间 双指针 StringBuilder

【代码】力扣面试150 汇总区间 双指针 StringBuilder。

人言束负兑生|完美是完蛋的开始 544

leetcode 228. 汇总区间(LeetCode 228. Summary Ranges)

给定一个无重复元素的有序整数数组,返回数组中区间范围的汇总。 示例 1: 输入: [0,1,2,4,5,7] 输出: [“0-&gt;2”,”4-&gt;5”,”7”] 示例 2: 输入: [0,2,3,4,6,8,9] 输出: [“0”,”2-&gt;4”,”6”,”8-&gt;9”] 遍历整个数组,用start记录起始位置,当遇到一个nums[i] !=...

liujunzxcv的专栏 581

[228] 汇总区间

如果不是一个区间,只是一个数字 x,则这个数字在nums中,不存在 x - 1, 或 x + 1。如果是一个区间,则区间的两头中间包含的所有数字都在nums中,包含边界。理解题意就好做了 ^ ^列表中的每个区间范围。

qq_36790074的博客 249

LeetCode228

/** * @author Lee * @date 2020-06-01- 20:10 * @Version 1.0 * @Description:给定一个无重复元素的有序整数数组,返回数组区间范围的汇总。 示例 1: * <p> * 输入: [0,1,2,4,5,7] * 输出: ["0->2","4->5","7"] * 解释: 0,1,2 可组成一个连续的区间; 4,5 可组成一个连续的区间。 */ public class LeetCode228 {

Lee782678345的博客 888

leetcode 228. 汇总区间

给定一个无重复元素的有序整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。 列表中的每个区间范围 [a,b] 应该按如下格式输出: “a->b” ,如果 a != b “a” ,如果 a == b 示例 1: 输入:nums = [0,1,2,4,5,7] 输出:[“0->2”,“4->5”,“7”] 解释:区间范围是: [0,2] -->

weixin_44560620的博客 120

Leetcode 汇总区间 228

给定一个无重复元素的有序整数数组,返回数组区间范围的汇总。 示例 1: 输入: [0,1,2,4,5,7] 输出: ["0-&gt;2","4-&gt;5","7"] 解释: 0,1,2 可组成一个连续的区间; 4,5 可组成一个连续的区间。 示例 2: 输入: [0,2,3,4,6,8,9] 输出: ["0","2-&gt;4","6","8

LoganMaaa的博客 246
上一篇: java数据结构与算法刷题-----LeetCode219:存在重复元素 II
下一篇: java数据结构与算法刷题-----LeetCode225:用队列实现栈
ydenergy_殷志鹏
博客等级 码龄7年 5886粉丝 543原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ydenergy_殷志鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值