lc228. 汇总区间

news2024/11/21 2:39:25

暴力解法:遍历数组,判断数组是否连续递增。将连续递增的数据的首尾的数据分别存储在map集合的key和value之中,输出时判断首尾值是否相同采用两种方式输出 

复杂度分析

  • 时间复杂度:O(n),其中 n 为数组的长度。
  • 空间复杂度:O(1)。除了用于输出的空间外,额外使用的空间为常数。

import java.util.HashMap;

public class SummaryIntervals {
    public static HashMap<Integer, Integer> summaryIntervals(int[] nums) {
        HashMap<Integer, Integer> map = new HashMap<>();//用map集合存储首尾数据,如果相同,则只输出一个点
        if (nums.length == 0) {//防止输入空数组
            return map;
        }
        int a = nums[0];
        int b = nums[0];


        for (int i = 0; i < nums.length; i++) {
            if (i < nums.length - 1 && nums[i] + 1 != nums[i + 1]) {//i < nums.length - 1避免数组越界
                b = nums[i];//赋值b
                map.put(a, b);//存储首尾数据

                a = nums[i + 1];//更新a,b
                b = nums[i + 1];

            } else if (i == nums.length - 1) {//处理结尾的数据
                if (a != nums[i]) {
                    b = nums[i];
                }
                map.put(a, b);
            }
        }

        return map;
    }

    public static void main(String[] args) {
        int[] nums1 = new int[]{0, 1, 2, 4, 5, 7};
        int[] nums2 = new int[]{0, 2, 3, 4, 6, 8, 9};
        int[] nums3 = new int[0];
        int[] nums4 = new int[]{-1};

        HashMap<Integer, Integer> map = summaryIntervals(nums3);

        for (HashMap.Entry<Integer, Integer> entry : map.entrySet()) {
            // 处理每个键值对
            if (entry.getKey() == entry.getValue()) {//判断map集合的key和value值是否相同
                System.out.print(entry.getKey() + " ");
            } else {//不相同
                System.out.print(entry.getKey() + "-->" + entry.getValue() + " ");
            }
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1199267.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

环形链表解析(c语言)c语言版本!自我解析(看了必会)

目录 1.判断一个表是否是环形链表&#xff01; 代码如下 解析如下 2.快指针的步数和慢指针的步数有什么影响&#xff08;无图解析&#xff09; 3.怎么找到环形链表的入环点 代码如下 解析如下 1.判断一个表是否是环形链表&#xff01; 代码如下 bool hasCycle(struct L…

ZDH-智能营销-执行流程解析

目录 项目源码 预览地址 安装包下载地址 通过2个方向解读ZDH流程图 图执行方向 数据流转方向 项目源码 zdh_web: GitHub - zhaoyachao/zdh_web: 大数据采集,抽取平台 zdh_magic_mirror: https://github.com/zhaoyachao/zdh_magic_mirror 预览地址 后台管理-登陆 用户…

Matplotlib绘图一网打尽【持续更新ing】

2 绘制扇形图 绘制一个展示男女乘客比例的扇形图 得出男女的具体数字 sex_per df["Sex"].value_counts() sex_per # 把画图的包导入进来 import matplotlib.pyplot as plt# 这种绘图方式主要用于有多个子图以及复杂的图形布局的时候。fig,ax plt.subplots()# pl…

numpy 基础使用

NumPy是Python中科学计算的基础包。它是一个Python库&#xff0c;提供多维数组对象&#xff0c;各种派生对象&#xff08;如掩码数组和矩阵&#xff09;&#xff0c;以及用于数组快速操作的各种API&#xff0c;有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变…

Python 使用OS模块调用 cmd

嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 在os模块中提供了两种调用 cmd 的方法&#xff0c;os.popen() 和 os.system() os.system(cmd) 是在执行command命令时需要打开一个终端&#xff0c;并且无法保存command命令的执行结果。 os.popen(cmd,mode) 打开一个与comma…

汽车ECU的虚拟化技术初探(一)

目录 1.为什么要提汽车ECU的虚拟化&#xff1f; 2.虚拟化技术分类 2.1 硬件虚拟化 2.2 操作系统虚拟化 问题引入&#xff1a; Hypervisor是如何来管理和隔离硬件资源&#xff0c;保证各个不同功能的应用程序的资源使用安全和资源调度&#xff1f;没有MMU就做不了虚拟化&am…

【集简云调度影刀RPA】

集简云调度影刀 集简云的http请求&#xff0c;都是用webhook。 1、获取token的时候&#xff0c;在url中必须这么填&#xff0c;在数据或者headers里面填写keyID和密码不管用。 2.调起应用的时候&#xff0c;需要选择webhook中的post&#xff0c;自定义的请求&#xff0c;才能…

Ubuntu虚拟机设置静态IP

目录 1 确定网络信息2 配置网络文件3 更新配置4 验证 网上很多方案都是 sudo vi /etc/network/interfaces 但是在Ubuntu20.04中我的目录i已经没有这个文件夹了&#xff0c;好像就算自己新建通过这种方式也是不能达到静态ip的目的。整理了下面的这种方式&#xff0c;实测最终有效…

2.OpenResty系列之Lua入门

1. Lua简介 Lua是一种轻量级的、高效的脚本编程语言&#xff0c;最初由巴西里约热内卢天主教大学的一个研究小组开发和发布。Lua的设计目标是提供一个简单、可嵌入、可扩展的脚本语言&#xff0c;官方实现完全采用 ANSI C 编写&#xff0c;能以 C 程序库的形式嵌入到其他应用程…

基于JavaWeb的网上体育商城的设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。你想解决的问题&#xff0c;今天给大家介绍…

在以TAB为首地址的字存储区中存放有N个无符号数,试统计低3位全为1的数的个数(个数设为≤9),并显示。

;默认认采用ML6.11汇编程序 DATAS SEGMENT;此处输入数据段代码TAB DW -7,7,15,20,21N($-TAB)/2;G DW 0 DATAS ENDS STACKS SEGMENT;此处处输入堆栈段代码; DB 200 DUP(0) STACKS ENDS CODES SEGMENTASSUME CS:CODES,DS: DATAS, SS:STACKS START:MOV AX, DATASMOV DS,AX;此处输入…

JavaScript从入门到精通系列第三十四篇:基于JavaScript实现邮件正则

文章目录 一&#xff1a;电子邮件正则 1&#xff1a;电子邮件规则 2&#xff1a;编写代码校验 大神链接&#xff1a;作者有幸结识技术大神孙哥为好友&#xff0c;获益匪浅。现在把孙哥视频分享给大家。 孙哥链接&#xff1a;孙哥个人主页 作者简介&#xff1a;一个颜值99分&…

postman设置动态token, 每次登录更新token

postman设置动态token, 每次登录更新token 文章目录 postman设置动态token, 每次登录更新token问题1. 设置全局变量2. 新建登录接口3. 设置脚本4. 切换环境5. 配置动态token 问题 token过期时间一般比较短, 每次使用postman调用接口都token非常麻烦 实现token过期后, 调用一次…

链表经典OJ题(链表回文结构,链表带环,链表的深拷贝)

目录 前言 1.反转一个单链表。 2. 给定一个带有头结点 head 的非空单链表&#xff0c;返回链表的中间结点。 3.链表的回文结构。 4.链表带环问题&#xff08;*****&#xff09; 4.1是否带环 4.2 入环的节点 5.随机链表的复制&#xff08;链表的深拷贝&#xff09; 前言…

[ARM入门]ARM模式及其切换、异常

ARM技术特征 ARM处理器有如下特点 体积小、功耗低、成本低、性能高支持Thumb&#xff08;16位&#xff09;/ARM&#xff08;32位&#xff09;双指令集&#xff0c;能很好地兼容8位/16位器件大量使用寄存器&#xff0c;指令执行速度更快大多数数据操作都在寄存器中完成寻址方式…

亚马逊云AI应用科技创新下的Amazon SageMaker使用教程

目录 Amazon SageMaker简介 Amazon SageMaker在控制台的使用 模型的各项参数 pytorch训练绘图部分代码 Amazon SageMaker简介 亚马逊SageMaker是一种完全托管的机器学习服务。借助 SageMaker&#xff0c;数据科学家和开发人员可以快速、轻松地构建和训练机器学习模型&#…

基于STM32单片机抢答器设计

**单片机设计介绍&#xff0c; 基于STM32单片机抢答器设计-Proteus仿真 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于STM32单片机的抢答器设计可以用于教育和培训场景中的抢答游戏或考试环节。以下是一个基本的介绍设计步骤…

翻译环境(编译和链接)(简单讲解,理解图就行)

前言 这是我们学习代码的最重要的一个知识点之一&#xff0c;因为我们要去运行一个代码并不是简单的去直接出结果&#xff0c;而是经过了很多我们看不到的步骤&#xff0c;我们在这里以C语言为例子在Linux的环境下讲解&#xff0c;大家没有学过Linux的不用担心&#xff0c;最后…

creo6.0教程之旋转,扫描

目录 一、旋转&#xff1a;二、扫描&#xff1a; 一、旋转&#xff1a; 案例1&#xff1a;旋转一个球&#xff1a; 任意一个平面绘制草图&#xff1a; 确定草图后&#xff0c;然后退出草图&#xff0c;点击旋转&#xff1a; 案例2&#xff1a;旋转一个杯子雏形&#xff1a; …

Clickhouse学习笔记(11)—— 数据一致性

使用合并树引擎时&#xff0c;无论是ReplacingMergeTree还是SummingMergeTree&#xff0c;都只能保证数据的最终一致性&#xff0c;因为数据的去重、聚合等操作会在数据合并的期间进行&#xff0c;而合并会在后台以一个不确定的时间进行&#xff0c;因此无法预先计划&#xff1…