簡體   English   中英

Python 代碼不起作用!-- 將數組轉換為 Zig-Zag 時尚

[英]Python Code Not Working!-- Convert array into Zig-Zag fashion

給定一個大小為 N 的不同元素的數組 arr,任務是以之字形方式重新排列數組的元素,以便轉換后的數組應為以下形式: arr[0] < arr[1] > arr [2]<arr[3]>arr[4]<. . . . arr[n-2] < arr[n-1] > arr[n]。

   def zigZag(self,arr, n):
        res=[]
        r=(n//2)+1
        arr.sort()
        j=0
        i=0
        for k in range(0, r, 1):
            res.insert(i, arr[j])
            res.insert(i+1, arr[j+r])
            i= i+2
            j+= j
        return res

您可以對數組進行排序並從數組的兩側添加到新數組中。

def zigZag(self, arr, n):
    res=[None]*n
    arr.sort()
    i = 0
    j = 0
    while i < n//2:
        res[j] = arr[i]
        res[j+1] = arr[n-1-i]
        i+=1
        j+=2 
    if n%2 == 1:
        res[-1] = arr[n//2]
    return res

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM