gpt4 book ai didi

java - 如何在 Android(java 或 kotlin)中将多个数组与相同的第一个或最后一个元素组合在一起?

转载 作者:行者123 更新时间:2023-12-01 16:59:01 24 4
gpt4 key购买 nike

数组可以颠倒。

例如:

Int[] a = {1,2,3,4,5};
Int[] b = {9,8,7,6,5};
Int[] c = {3,0,9};

Int[] output = {1,2,3,4,5,6,7,8,9,0,3};

我可以使用嵌套循环来实现它。但有没有更简单的算法呢?

最佳答案

不确定我是否了解您的要求,但这是我的假设:

  • 如果第一个数组的最后一个元素与第二个数组的第一个元素或第二个数组的最后一个元素相同,则可以组合两个数组 - 在后一种情况下,您还需要反转第二个数组;
  • 当两个数组合并时,第二个数组的第一个元素应该被跳过(反转数组后,如果需要根据上一点)
  • 如果两个数组无法组合,则返回空数组

根据这些假设,这是一个可能的实现:

fun combineArrays(a: IntArray, b: IntArray): IntArray =
when {
a.last() == b.first() -> a + b.takeLast(b.size - 1)
a.last() == b.last() -> a + b.reversed().takeLast(b.size - 1)
else -> intArrayOf()
}

val a = intArrayOf(1, 2, 3, 4, 5)
val b = intArrayOf(9, 8, 7, 6, 5)
val c = intArrayOf(3, 0, 9)

val result = combineArrays(combineArrays(a, b), c)
println(result.joinToString())

这会打印 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 3 .

关于java - 如何在 Android(java 或 kotlin)中将多个数组与相同的第一个或最后一个元素组合在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61541895/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com