在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ For some fixed For every Given Example 1: Input: 4
Output: [2,1,4,3]
Example 2: Input: 5
Output: [3,1,2,5,4]
Note:
对于某些固定的 对于每个 那么数组 给定 示例 1: 输入:4 输出:[2,1,4,3] 示例 2: 输入:5 输出:[3,1,2,5,4] 提示:
16ms 1 class Solution { 2 func beautifulArray(_ N: Int) -> [Int] { 3 var a:[Int] = [Int](repeating: 0,count: N) 4 dfs(1, 0, N, &a,0) 5 for i in 0..<N 6 { 7 a[i] += 1 8 } 9 return a 10 } 11 //深度优先搜索。DFS即Depth First Search. 12 //对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次 13 func dfs(_ d:Int,_ m:Int,_ n: Int,_ a:inout [Int],_ off:Int) -> Int 14 { 15 var off = off 16 if m >= n {return off} 17 if m + d >= n 18 { 19 a[off] = m 20 off += 1 21 return off 22 } 23 for i in 0..<2 24 { 25 off = dfs(d*2, m+d*i, n, &a, off) 26 } 27 return off 28 } 29 } 16ms 1 class Solution { 2 func beautifulArray(_ N: Int) -> [Int] { 3 var res: [Int] = [] 4 res.append(1) 5 while res.count < N { 6 var temp: [Int] = [] 7 for i in res { 8 if i * 2 - 1 <= N { 9 temp.append(i * 2 - 1) 10 } 11 } 12 for i in res { 13 if i * 2 <= N { 14 temp.append(i * 2) 15 } 16 } 17 res = temp 18 } 19 return res 20 } 21 }
|
请发表评论