文章目录

  • 1. 题目
  • 2. 解题
    • 2.1 分治递归
    • 2.2 循环

1. 题目

对于某些固定的 N,如果数组 A 是整数 1, 2, …, N 组成的排列,使得:

对于每个 i < j,都不存在 k 满足 i < k < j 使得 A[k] * 2 = A[i] + A[j]

那么数组 A 是漂亮数组。

给定 N,返回任意漂亮数组 A(保证存在一个)。

示例 1:
输入:4
输出:[2,1,4,3]示例 2:
输入:5
输出:[3,1,2,5,4]提示:
1 <= N <= 1000

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/beautiful-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

引用漂亮数组的一些性质

漂亮数组有以下的性质:

(1)A是一个漂亮数组,如果对A中所有元素添加一个常数(+b),那么A还是一个漂亮数组。

(2)A是一个漂亮数组,如果对A中所有元素乘以一个常数(*k),那么A还是一个漂亮数组。

(3)A是一个漂亮数组,如果删除一些A中一些元素,那么A还是一个漂亮数组。

(4)A是一个奇数构成的漂亮数组,B是一个偶数构成的漂亮数组,那么A+B也是一个漂亮数组

2.1 分治递归

class Solution {public:vector<int> beautifulArray(int N) {if(N == 1)return {1};vector<int> odd = beautifulArray((N+1)/2);vector<int> even = beautifulArray(N/2);vector<int> ans;for(int i : odd)ans.push_back(i*2-1);for(int i : even)ans.push_back(i*2);return ans;}
};

28 ms 18 MB

2.2 循环

class Solution {public:vector<int> beautifulArray(int N) {vector<int> temp = {1};int i, j = 0, len;while(temp.size() < N){len = temp.size();for(i = 0; i < len; ++i)temp[i] = 2*temp[i]-1;for(i = 0; i < len; ++i)temp.push_back(temp[i]+1);}vector<int> ans(N);for(i = 0; i < temp.size(); ++i){if(temp[i] <= N)ans[j++] = temp[i];}return ans;}
};

4 ms 7.2 MB

LeetCode 932. 漂亮数组(分治递归/循环)相关推荐

  1. leetcode 932. Beautiful Array | 932. 漂亮数组(分治法)

    题目 https://leetcode.com/problems/beautiful-array/ 题解 没想出来,最后参考了[分治]通俗的官解分析 的思路. 推理过程 草稿 class Soluti ...

  2. LeetCode 101. 对称二叉树(递归循环)

    1. 题目 给定一个二叉树,检查它是否是镜像对称的. 例如,二叉树 [1,2,2,3,4,4,3] 是对称的.1/ \2 2/ \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3,n ...

  3. [Leetcode][第889题][JAVA][根据前序和后序遍历构造二叉树][分治][递归]

    [问题描述][中等] [解答思路] copyOfRange class Solution {public TreeNode constructFromPrePost(int[] pre, int[] ...

  4. [Leetcode][第106题][JAVA][ 从中序与后序遍历序列构造二叉树][分治][递归]

    [问题描述][中等] [解答思路] public class Solution {public TreeNode buildTree(int[] inorder, int[] postorder) { ...

  5. 函数传参问题,桶排序去重,分治递归,摩尔投票求数组众数,数组中心下标求法

    TIPS 1. 我们都知道,地址,指针这两者是完全等价的概念,但是有微小的差别.地址的话是不能够修改的(比如说数组名++就是违法的),而指针的话可以++与--. 2. 以后一旦在代码里面看到字符cha ...

  6. LeetCode[912]排序数组

    难度:Medium 题目: 给你一个整数数组 nums,请你将该数组升序排列. 示例 1: 输入:nums = [5,2,3,1] 输出:[1,2,3,5] 示例 2: 输入:nums = [5,1, ...

  7. c 最大子序列和_最大子序列和暴力法、分治+递归法、妙法

    你好,我是goldsunC 让我们一起进步吧! 最大子序列和 Question:给定整数(可能有负数),求的最大值(为方便起见,如果所有整数均为负数,则最大子序列和为0). 示例: IN : [-2, ...

  8. HDU1007 Quoit Design 分治+递归

    点击打开链接 Quoit Design Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Oth ...

  9. php 递归栏目名叠加,thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法,thinkphp递归...

    thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法,thinkphp递归 本文实例讲述了thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法.分享给大家供大家参考,具体如下: 这 ...

最新文章

  1. 在sublime-text中设置浏览器预览
  2. php 防火墙配置,rhel6+nginx+php+php-fpm 防火墙配置问题
  3. oracle net manager没有orcl_Oracle-数据库基础知识
  4. FFMpeg中apiexample.c例子分析——编码分析
  5. db2分页sql_停止尝试使用内部DB框架模拟SQL OFFSET分页!
  6. pyecharts对于经纬度_一文带你掌握Pyecharts地理数据可视化的方法
  7. fastai学习——第一个bug
  8. 扎克伯格公开信:Facebook拥有五大核心价值
  9. 20145226夏艺华 后门原理与实践
  10. 个人计算机的未来,未来的个人电脑将会成为光子计算机的天下
  11. hdu2544---最短路
  12. vulstack2(hydra爆mssql、免杀360、cs、msf渗透、weblogic、computer brower服务支持6118,域管密码过期kerberos认证错误导致部分域服务不可用)
  13. hashcat的使用及相关
  14. sql server 找到刚刚插入的indentify的数字
  15. Android获得手机唯一设备ID号
  16. python小游戏之外星人入侵之pygame实战应用(含源码下载)
  17. MySQL在Windows和Linux平台上多版本多实例安装配置方法(5.5、5.6、5.7、8.0)
  18. Hadoop-JAVA编写HDFS客户端进行HDFS操作
  19. Ribbon--概述
  20. 职中计算机基础应用期中试题,职中计算机应用基础期中考试试题及答案

热门文章

  1. html股票数据代码,股票数据的网站抓取(4.2)代码优化
  2. python配置pip_Python pip源配置
  3. excel 2007 vba与宏完全剖析_Excel宏VBA小技巧系列 | 分段加合
  4. jj为什么会变大变小_为什么上过太空的种子果实会变大?射线会让生物向大变异吗?...
  5. NVLink技术及影响解析
  6. http数据绑定spring mvc详解
  7. java GZIP压缩和解压
  8. iOS 5.1.1 设备不能安装AdHoc问题版本号
  9. Java 中实现定时服务 在ssh框架中跟普通工程里面创建的方式
  10. 2011年值得注意的5个设计趋势