667. Beautiful Arrangement II
来源:互联网 发布:js验证手机号码格式 编辑:程序博客网 时间:2024/06/05 11:30
标签(空格分隔): leetcode
- 原题
- 分析
- 代码实现过程中的一些坑
- 代码
1.原题
Given two integers n and k, you need to construct a list which contains n different positive integers ranging from 1 to n and obeys the following requirement:
Suppose this list is [a1, a2, a3, … , an], then the list [|a1 - a2|, |a2 - a3|, |a3 - a4|, … , |an-1 - an|] has exactly k distinct integers.
If there are multiple answers, print any of them.
2.分析:
只需要输出其中一种,所以,最直接的方法就是凑K出来就行。
注意到 1 <= k < n
也就是提示,range(n)一共最多有k种这类的差值,[(1, n), (2, n-1), (3, n-2)……]
3.代码实现过程中的一些坑:
当k是奇数的时候, 在排好k-1个差值的序列后, 接下来的值需要按照升序排
当k是偶数的时候, 在排好k-1个差值的序列后,接下来的值需要按照降序排
n = 5, k = 2
[1,5] + [4, 3, 2]
n = 5, k = 3
[1,5,2] + [3, 4]
4. 代码
class Solution {public: vector<int> constructArray(int n, int k) { vector<int> ans; int j = 1; for (int i = 1; i <= k; i++){ if (i%2){ ans.push_back(j); j++; } else { ans.push_back(n - j + 2); } } if (k%2){ for (int i = k+1; i <= n; i++){ ans.push_back(j++); } } else { j = n-j+1; for (int i = k+1; i <= n; i++){ ans.push_back(j--); } } return ans; }};
阅读全文
0 0
- 667. Beautiful Arrangement II
- 667. Beautiful Arrangement II
- 667. Beautiful Arrangement II
- 667. Beautiful Arrangement II
- 667. Beautiful Arrangement II。
- 667. Beautiful Arrangement II
- LeetCode 667. Beautiful Arrangement II
- leetcode 667. Beautiful Arrangement II
- LeetCode 667. Beautiful Arrangement II
- LeetCode 667. Beautiful Arrangement II
- leetcode 667. Beautiful Arrangement II
- 667. Beautiful Arrangement II(Java)
- LeetCode 667. Beautiful Arrangement II
- leetcode 667. Beautiful Arrangement II
- 667. Beautiful Arrangement II 找规律
- leetcode- Beautiful Arrangement II
- leetCode-Beautiful Arrangement II
- leetcode 667. Beautiful Arrangement II 双指针遍历
- Java笔试题(三)
- 2017网易校招:Fibonacci数列
- 数组指针和指针数组的详解
- ASP.net初识
- 用for循环打印输出数据三角形图形
- 667. Beautiful Arrangement II
- 集成Eclipse和Tomcat时找不到server选项:
- Java-Web实现数据到页面
- 人脸年龄和性别训练的数据集和开源代码
- java基础---内部类的使用
- Java中如何把两个数组合并为一个
- 模拟进程队列管理——按照优先级入列
- css 选择器
- 微信小程序4 组件补完