667. Beautiful Arrangement II 美丽的安排2

 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 = 1
Output: [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 = 2
Output: [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:

  1. The n and k are in the range 1 <= k < n <= 104.

  1. /**
  2. * @param {number} n
  3. * @param {number} k
  4. * @return {number[]}
  5. */
  6. var constructArray = function (n, k) {
  7. let res = [];
  8. for (let i = 1, j = n; i <= j;) {
  9. if (k > 1) {
  10. res.push(k-- % 2 ? i++ : j--);
  11. } else {
  12. res.push(i++);
  13. }
  14. }
  15. return res;
  16. };
  17. let n = 3;
  18. let k = 2;
  19. let res = constructArray(n, k);
  20. console.log(res);





原文地址:https://www.cnblogs.com/xiejunzhao/p/8261636.html