LeetCode 932. 漂亮数组(分治递归/循环)
文章目录
- 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. 漂亮数组(分治递归/循环)相关推荐
- leetcode 932. Beautiful Array | 932. 漂亮数组(分治法)
题目 https://leetcode.com/problems/beautiful-array/ 题解 没想出来,最后参考了[分治]通俗的官解分析 的思路. 推理过程 草稿 class Soluti ...
- LeetCode 101. 对称二叉树(递归循环)
1. 题目 给定一个二叉树,检查它是否是镜像对称的. 例如,二叉树 [1,2,2,3,4,4,3] 是对称的.1/ \2 2/ \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3,n ...
- [Leetcode][第889题][JAVA][根据前序和后序遍历构造二叉树][分治][递归]
[问题描述][中等] [解答思路] copyOfRange class Solution {public TreeNode constructFromPrePost(int[] pre, int[] ...
- [Leetcode][第106题][JAVA][ 从中序与后序遍历序列构造二叉树][分治][递归]
[问题描述][中等] [解答思路] public class Solution {public TreeNode buildTree(int[] inorder, int[] postorder) { ...
- 函数传参问题,桶排序去重,分治递归,摩尔投票求数组众数,数组中心下标求法
TIPS 1. 我们都知道,地址,指针这两者是完全等价的概念,但是有微小的差别.地址的话是不能够修改的(比如说数组名++就是违法的),而指针的话可以++与--. 2. 以后一旦在代码里面看到字符cha ...
- LeetCode[912]排序数组
难度:Medium 题目: 给你一个整数数组 nums,请你将该数组升序排列. 示例 1: 输入:nums = [5,2,3,1] 输出:[1,2,3,5] 示例 2: 输入:nums = [5,1, ...
- c 最大子序列和_最大子序列和暴力法、分治+递归法、妙法
你好,我是goldsunC 让我们一起进步吧! 最大子序列和 Question:给定整数(可能有负数),求的最大值(为方便起见,如果所有整数均为负数,则最大子序列和为0). 示例: IN : [-2, ...
- HDU1007 Quoit Design 分治+递归
点击打开链接 Quoit Design Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Oth ...
- php 递归栏目名叠加,thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法,thinkphp递归...
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法,thinkphp递归 本文实例讲述了thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法.分享给大家供大家参考,具体如下: 这 ...
最新文章
- 在sublime-text中设置浏览器预览
- php 防火墙配置,rhel6+nginx+php+php-fpm 防火墙配置问题
- oracle net manager没有orcl_Oracle-数据库基础知识
- FFMpeg中apiexample.c例子分析——编码分析
- db2分页sql_停止尝试使用内部DB框架模拟SQL OFFSET分页!
- pyecharts对于经纬度_一文带你掌握Pyecharts地理数据可视化的方法
- fastai学习——第一个bug
- 扎克伯格公开信:Facebook拥有五大核心价值
- 20145226夏艺华 后门原理与实践
- 个人计算机的未来,未来的个人电脑将会成为光子计算机的天下
- hdu2544---最短路
- vulstack2(hydra爆mssql、免杀360、cs、msf渗透、weblogic、computer brower服务支持6118,域管密码过期kerberos认证错误导致部分域服务不可用)
- hashcat的使用及相关
- sql server 找到刚刚插入的indentify的数字
- Android获得手机唯一设备ID号
- python小游戏之外星人入侵之pygame实战应用(含源码下载)
- MySQL在Windows和Linux平台上多版本多实例安装配置方法(5.5、5.6、5.7、8.0)
- Hadoop-JAVA编写HDFS客户端进行HDFS操作
- Ribbon--概述
- 职中计算机基础应用期中试题,职中计算机应用基础期中考试试题及答案
热门文章
- html股票数据代码,股票数据的网站抓取(4.2)代码优化
- python配置pip_Python pip源配置
- excel 2007 vba与宏完全剖析_Excel宏VBA小技巧系列 | 分段加合
- jj为什么会变大变小_为什么上过太空的种子果实会变大?射线会让生物向大变异吗?...
- NVLink技术及影响解析
- http数据绑定spring mvc详解
- java GZIP压缩和解压
- iOS 5.1.1 设备不能安装AdHoc问题版本号
- Java 中实现定时服务 在ssh框架中跟普通工程里面创建的方式
- 2011年值得注意的5个设计趋势