按此顺序重新排列数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了按此顺序重新排列数组相关的知识,希望对你有一定的参考价值。
给定数组[1 2 3 4 5 6]
将其从前面写成一个数字,然后从后面写成一个数字,依此类推
例如:123456将返回162534
130将返回103
我做了这个,但是我在实现这个目标的逻辑上有困难。请帮助:
public int solution(int A)
// write your code in C# 6.0 with .NET 4.5 (Mono)
string S = A.ToString();
int [] intArray = new int[S.Length];
for(int i=0; i < S.Length; i++)
intArray[i] = int.Parse(S[i]);
List<string> newCol = new List<string>();
newCol.Add(intArray[0]);
for(int i=1; i < intArray.Length; i++)
if ()
newCol.Add(intArray[i])
答案
伪代码:
s = 0 # first index of array
e = array.length() - 1 # last index of array
looking_at_s_or_e = "s"
index = s
while s != e
new_array.push(array[index])
if looking_at_s_or_e = "s"
looking_at_s_or_e = "e"
index = s++
else
looking_at_s_or_e = "s"
index = e--
end
end
可能是最后一个元素的处理还不干净。应该验证。
以上是关于按此顺序重新排列数组的主要内容,如果未能解决你的问题,请参考以下文章
087-把PHP数组中的元素按随机顺序重新排列shuffle
2021-11-05:摆动排序 II。给你一个整数数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]... 的顺序。你可以假设所有输入数组都可以