• 667. Beautiful Arrangement II


    1. Question:

    667. Beautiful Arrangement II

    https://leetcode.com/problems/beautiful-arrangement-ii/

    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.

    2. Solution

    class Solution:
        def constructArray(self, n, k):
            """
            :type n: int
            :type k: int
            :rtype: List[int]
            """
            re = list(range(1, n + 1))
    
            j = k
            right_value = k + 1
            left_value = 1
            while j > 0:
                re[j] = right_value
                re[j - 1] = left_value
                right_value -= 1
                left_value += 1
                j -= 2
    
            if j == 0:
                re[0] = left_value
            return re
  • 相关阅读:
    模糊查询与索引
    weblogic 域的创建
    undo表空间缩小
    weblogic安装
    C#学习笔记——枚举类型
    C#学习笔记——windows窗体
    Qt之主窗口设计——打印图像
    C#学习笔记——MDI窗体(多文档界面)
    C#学习笔记——抽象类和抽象方法
    C#学习笔记——Main方法
  • 原文地址:https://www.cnblogs.com/ordili/p/9998550.html
Copyright © 2020-2023  润新知