java对整数数组进行排序,而不影响由表示的特殊字符的索引$
我在面试中被问到的问题如下。 例如:包含特殊字符的整数输入数组在输入数组的几个索引处存在任何特殊字符,如#,@$:
[12,5,65,#,@,20,10,#,@,47,50,$,11,$,90,$]. Here, we have special character denoted as $ exists at index 5, 8 & 10.
排序后,特殊字符位置(索引)不应更改。这意味着输出数组应该如下所示:
[5,10,11,#,@,12,20,#,@,47,50,$,65,$,90,$]
我的答案是:根据$将数组拆分为子数组。之后,对所有子阵列分别排序,然后合并它们。但是,面试官们对此印象不深。请建议不同的方法
# 1 楼答案
还有另一个解决方案:
$
字符的所有可能索引李>$
。否则,请从已排序的数字中添加和删除第一个数字李>示例代码:
输出:
# 2 楼答案
下面是使用Streams的方法
输出:
# 3 楼答案
解决这个问题的简单算法
# 4 楼答案
最简单的排序算法之一是Selection Sort,它非常适合这种情况,因为它可以轻松跳过应该单独保留的元素
测试
输出
# 5 楼答案
在迭代数组时比较条目,并设置一个if-else条件以跳过美元符号