932. 漂亮数组

news2025/2/28 19:43:05

932. 漂亮数组

  • 原题链接:
  • 完成情况:
  • 解题思路:
  • 参考代码:

原题链接:

932. 漂亮数组
https://leetcode.cn/problems/beautiful-array/description/

完成情况:

在这里插入图片描述

解题思路:

 nums 是由范围 [1, n] 的整数组成的一个排列。
 对于每个 0 <= i < j < n ,均不存在下标 k(i < k < j)使得 2 * nums[k] == nums[i] + nums[j] 。

 题目解释:
 【输入】   -> 输入一个n,n即长度,用到的数字,则是1-n这n数字
 【输出】   输出,由1-n这n数字组成的一个数组,然后数组要满足一下的条件,即不存在:
            对于每个 0 <= i < j < n ,均不存在下标 k(i < k < j)使得 2 * nums[k] == nums[i] + nums[j] 。

 解题思路:
    个人感觉肯定需要用到的是dp,即因为需要找到一个满足上要求的数组,则至少要保证在,之前的长度中,他其实就需要满足长度需求。
    即,在原本已经满足题目要求的完美数组中,我又重新插入一个新的数组,然后这个数组我又去找到一个合适的插入位置,使它满足要求。

在这里插入图片描述

参考代码:

package LeetCode中等题;

import java.util.HashMap;
import java.util.Map;

public class __932漂亮数组__发现规律_进行分治 {
    /**
     nums 是由范围 [1, n] 的整数组成的一个排列。
     对于每个 0 <= i < j < n ,均不存在下标 k(i < k < j)使得 2 * nums[k] == nums[i] + nums[j] 。

     题目解释:
     【输入】   -> 输入一个n,n即长度,用到的数字,则是1-n这n数字
     【输出】   输出,由1-n这n数字组成的一个数组,然后数组要满足一下的条件,即不存在:
                对于每个 0 <= i < j < n ,均不存在下标 k(i < k < j)使得 2 * nums[k] == nums[i] + nums[j] 。

     解题思路:
        个人感觉肯定需要用到的是dp,即因为需要找到一个满足上要求的数组,则至少要保证在,之前的长度中,他其实就需要满足长度需求。
        即,在原本已经满足题目要求的完美数组中,我又重新插入一个新的数组,然后这个数组我又去找到一个合适的插入位置,使它满足要求。


     * @param n
     * @return
     */
    Map<Integer,int []> memo = new HashMap<Integer,int []>();
    public int[] beautifulArray(int n) {
        return partition_findRule(n);
    }

    /**
     *
     * @param n
     * @return
     */
    private int[] partition_findRule(int n) {
        if (memo.containsKey(n)){
            return memo.get(n);
        }
        int res [] = new int[n];
        if (n == 1){
            res[0] = 1;
        }else{
            int temp = 0;
            for (int x:partition_findRule((n+1)/2)){    //取所有的偶数odds
                res[temp++] = 2 * x - 1;
            }
            for (int x:partition_findRule(n/2)){    //取所有的奇数evens
                res[temp++] = 2 * x;
            }
        }
        memo.put(n,res);
        return res;
    }
}

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

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

相关文章

智慧公厕破解公共厕所管理的“孤岛现象”

在现代社会中&#xff0c;公共厕所是城市管理中的一项重要任务。然而&#xff0c;经常会出现公厕管理的“孤岛现象”&#xff0c;即每个公厕都是独立运作&#xff0c;缺乏统一的管理和监控机制。针对这一问题&#xff0c;智慧公厕的出现为解决公共厕所管理难题带来了新的方案。…

无涯教程-JavaScript - COUPNUM函数

描述 COUPNUM函数返回结算日和到期日之间应付的息票数量,四舍五入到最接近的整数。 语法 COUPNUM (settlement, maturity, frequency, [basis])争论 Argument描述Required/OptionalSettlement 证券的结算日期。 证券结算日期是指在发行日期之后将证券交易给买方的日期。 Re…

Co-SLAM——论文解析

Co-SLAM: Joint Coordinate and Sparse Parametric Encodings for Neural Real-Time SLAM 神经隐式表征slam&#xff08;implict neural representaton&#xff0c;INR&#xff09;使用一个连续函数来表征图像或者三维voxel&#xff0c;并用神经网络来逼近这个函数。Co-SLAM 也…

MyBatis-Plus-扩展操作(3)

3.扩展 代码生成 逻辑删除 枚举处理器 json处理器 配置加密 分页插件 3.1 代码生成 https://blog.csdn.net/weixin_41957626/article/details/132651552 下载下面的插件 红色的是刚刚生成的。 我觉得不如官方的那个好用&#xff0c;唯一的好处就是勾选的选项能够看的懂得。…

架构图怎么制作?分享5个实用方法!

面对复杂的系统、应用程序或项目&#xff0c;绘制架构图是一种关键的手段&#xff0c;帮助我们清晰地展示各个组件、关系和交互。本文将带你深入了解几种常见的制作架构图的方法&#xff0c;一起看下去吧。 1 手绘和扫描 对于简单的概念&#xff0c;你可以手绘架构图&#…

自考本科,毕业八年,2023浙大MPA提面优秀分享

去年十月中旬&#xff0c;我参加了浙江大学MPA提前批面试。结果出乎意料地&#xff0c;我竟然获得了A资格。对此&#xff0c;我自己也感到难以置信。事实上&#xff0c;我只是抱着试一试的心态递交了申请材料。因为通过我对前几年浙大自划线的情况来看&#xff0c;对于浙江大学…

OSPF协议:优点、初始化流程和管理

文章目录 一、RIP的缺陷二、定义三、OSPF初始化流程1. 建立邻居和邻接关系2. 邻接路由器之间交换链路状态信息&#xff0c;实现区域内链路状态数据库同步3. 每台路由器根据本机链路状态数据库&#xff0c;计算到达每个目的网段的最优路由&#xff0c;写入路由表 四、OSPF分区域…

自媒体MCN公司选择企业云盘:哪个更适合?

自媒体MCN公司用什么企业云盘好&#xff1f;Zoho WorkDive企业网盘助力内容创作与MCN公司进行文件储存与管理。 一、MCN公司业务背景 A公司是一家处于蓬勃发展的MCN(多频道网络)机构&#xff0c;其业务范围广泛且多元化。A公司为文化娱乐行业提供经纪人服务&#xff0c;帮助艺人…

软考备考-程序员-备考笔记

软考备考-程序员-备考笔记 持续更新中》》》》》 更新日志&#xff1a; 刷题软件&#xff1a; 希赛网&#xff1a;每日一练和往年真题是免费的 软考通&#xff1a;完全免费 软考真题&#xff1a;完全免费 51CTO题库:微信小程序&#xff0c;不用下载&#xff0c;顺手 试卷题…

Java集合大总结——Map集合

Map集合框架 1、Map集合框架1.1 关于Map接口中的主要实现类1.2 各实现类的特点&#xff1a; 2. HashMap 和 Hashtable 的区别3. HashMap 和 HashSet 区别4. HashMap 和 TreeMap 区别 1、Map集合框架 注意&#xff1a;Map接口是在java.util.Map 的包下&#xff0c;Map 接口不是…

深度学习面试八股文(2023.9.06)

一、优化器 1、SGD是什么&#xff1f; 批梯度下降&#xff08;Batch gradient descent&#xff09;&#xff1a;遍历全部数据集算一次损失函数&#xff0c;计算量开销大&#xff0c;计算速度慢&#xff0c;不支持在线学习。随机梯度下降&#xff08;Stochastic gradient desc…

知识库搭建最简单的方法:登录、创建、优化,就这三步!

实际应用中&#xff0c;企业所需要的知识库场景不止一个&#xff0c;更多是很多场景的复合模式&#xff0c;甚至还需要不同团队间的协作配合&#xff0c;这个时候就还需要去考虑不同部门/团队间的业务拉通。 搭建知识库 所以当我们搭建知识库的时候&#xff0c;不仅要掌握基础…

【每天一道算法题】day2-认识时间复杂度

认识时间复杂度&#xff1a; O&#xff1a;读作big O&#xff0c;在数学上指的是上限的意思 常数时间的操作 一个操作如果和样本的数据量没有关系&#xff0c;每次都是固定时间内完成的操作&#xff0c;叫做常数操作。时间复杂度为一个算法流程中&#xff0c;常数操作数量的一…

docker系列(1) - docker环境篇

文章目录 1. docker环境1.1 docker安装1.2 阿里云镜像加速器1.2 docker管理工具(portainer)1.3 docker网络1.3.1 网络说明1.3.2 创建指定网关的网络 1. docker环境 1.1 docker安装 #CentOS 6 rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noar…

windows10系统-14-VirtualBox中的设置

VirtualBox 常用设置说明 Ubuntu-server18.04.2LTS安装VirtualBox增强功能 VirtualBox官网 使用VirtualBox一步一步安装Ubuntu 22.04 ubuntu server官网安装教程 1 新建虚拟机 (1)点击新建&#xff0c;在新建虚拟电脑对话框填入虚拟电脑的名称&#xff0c;保存的位置。推荐保…

代码随想录第41天| 343.整数拆分,96.不同的二叉搜索树

343.整数拆分 这道题全程懵逼 343. 整数拆分 class Solution {public int integerBreak(int n) {//推论一&#xff1a; 若拆分的数量 a 确定&#xff0c; 则 各拆分数字相等时 &#xff0c;乘积最大。//推论二&#xff1a; 将数字 n尽可能以因子 3等分时&#xff0c;乘积最大…

ElementPlus·面包屑导航实现

面包屑导航 使用vue3中的UI框架elementPlus的 <el-breadcrumb> 实现面包屑导航 <template><!-- 面包屑 --><div class"bread-container" ><el-breadcrumb separator">"><el-breadcrumb-item :to"{ path:/ }&quo…

apt安装yum

配置apt国内镜像源 /etc/apt/sources.list deb https://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ trusty-…

19 螺旋矩阵

螺旋矩阵 题解1 循环&#xff08;4个标志——根据顺时针&#xff09;题解2 方向 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 提示&#xff1a; - m matrix.length - n matrix[i].length - 1 < m, n <…

LVS NAT模式负载均衡群集部署

目录 1 群集(集群) cluster 1.1 群集的类型 2 LVS的工作模式及其工作过程 2.1 NAT模式&#xff08;VS-NAT&#xff09; 2.2 直接路由模式&#xff08;VS-DR&#xff09; 2.3 IP隧道模式&#xff08;VS-TUN&#xff09; 3 LVS-NAt 模式配置步骤 3.1 部署共享存储 3.2 配…