667. Beautiful Arrangement II(Java)
来源:互联网 发布:平板电脑淘宝开店认证 编辑:程序博客网 时间:2024/06/05 06:39
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.
Example 1:
Input: n = 3, k = 1Output: [1, 2, 3]Explanation: The [1, 2, 3] has three different positive integers ranging from 1 to 3, and the [1, 1] has exactly 1 distinct integer: 1.
Example 2:
Input: n = 3, k = 2Output: [1, 3, 2]Explanation: The [1, 3, 2] has three different positive integers ranging from 1 to 3, and the [2, 1] has exactly 2 distinct integers: 1 and 2.
Note:
The n and k are in the range 1 <= k < n <= 10的四次方.
思路:
if you have n number, the maximum k can be n - 1;if n is 9, max k is 8.This can be done by picking numbers interleavingly from head and tail,// start from i = 1, j = n;// i++, j--, i++, j--, i++, j--1 2 3 4 5 9 8 7 6out: 1 9 2 8 3 7 6 4 5dif: 8 7 6 5 4 3 2 1Above is a case where k is exactly n - 1When k is less than that, simply lay out the rest (i, j) in incremental order(all diff is 1). Say if k is 5: i++ j-- i++ j-- i++ i++ i++ ...out: 1 9 2 8 3 4 5 6 7dif: 8 7 6 5 1 1 1 1
class Solution { public int[] constructArray(int n, int k) { int[] res = new int[n]; int max = n, min = 1; int i; for (i = 0; i < k; i ++) { if (i % 2 != 0) res[i] = max --; else res[i] = min ++; } if (i % 2 == 0) { for (int j = k; j < n; j ++) res[j] = max --; } else { for (int j = k; j < n; j ++) res[j] = min ++; } return res; }}
阅读全文
0 0
- 667. Beautiful Arrangement II(Java)
- 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
- LeetCode 667. Beautiful Arrangement II
- leetcode 667. Beautiful Arrangement II
- 667. Beautiful Arrangement II 找规律
- leetcode- Beautiful Arrangement II
- leetCode-Beautiful Arrangement II
- leetcode526 Beautiful Arrangement Java
- C++读取txt文件内容——每行按列存入数组
- 86. Partition List
- cdn学习
- HDU 2014 青年歌手大奖赛_评委会打分
- 第九章 JSP标签
- 667. Beautiful Arrangement II(Java)
- 基于lua服务器
- tf.shape(a)和a.get_shape()
- Js作用域与作用域链详解
- MyBatis框架中Mapper类中方法的返回类型问题解决方案
- 在ubuntu下python编码问题
- 【JZOJ5343】【NOIP模拟】健美猫(模拟)
- 分享下学习Kotlin的历程-数据类型(2)
- HDU 2015 偶数求和