ETH官方钱包

前往
大廳
主題

LeetCode - 2562. Find the Array Concatenation Value 解題心得

Not In My Back Yard | 2024-01-15 12:00:01 | 巴幣 0 | 人氣 91

題目連結(jié):


題目意譯:
你被給定一個索引值從 0 開始的整數(shù)陣列 nums。

兩個數(shù)字的「串接」為一個由它們兩者的數(shù)值相接在一起所形成的新數(shù)字。

例如說,15 和 49 的串接為 1549。

nums 的「串接值」一開始為 0。執(zhí)行以下操作直到 nums 變?yōu)榭眨?/div>
    如果 nums 中存在多於一個數(shù)字,則從 nums 中挑出第一個以及最後一個元素。將兩者串接後再將其值加到 nums 的串接值裡。之後並將第一個和最後一個元素從 nums 中刪除;
    如果只存在一個元素,則將其值直接加進(jìn) nums 的串接值中並刪除該元素。

回傳 nums 的串接值。

限制:
1 ≦ nums.length ≦ 1000
1 ≦ nums[i] ≦ 10 ^ 4



範(fàn)例測資:
範(fàn)例 1:
輸入: nums = [7,52,2,4]
輸出: 596
解釋: 在執(zhí)行任意操作之前,nums 為 [7,52,2,4] 且串接值為 0。
- 在第一次操作中:
我們挑出第一個元素 7 以及最後一個元素 4。
它們的串接結(jié)果為 74,而我們將這個數(shù)值加到串接值中,所以它將變?yōu)?74。
接著我們將這些元素從 nums 中刪除,因此 nums 變?yōu)?[52,2]。
- 在第二次操作中:
我們挑出第一個元素 52 以及最後一個元素 2。
它們的串接結(jié)果為 522,而我們將這個數(shù)值加到串接值中,所以它將變?yōu)?596。
接著我們將這些元素從 nums 中刪除,因此 nums 變?yōu)榭铡?/div>
由於串接值為 596,所以答案為 596。

範(fàn)例 2:
輸入: nums = [5,14,13,8,12]
輸出: 673
解釋: 在執(zhí)行任意操作之前,nums 為 [5,14,13,8,12]且串接值為 0。
- 在第一次操作中:
我們挑出第一個元素 5 以及最後一個元素 12。
它們的串接結(jié)果為 512,而我們將這個數(shù)值加到串接值中,所以它將變?yōu)?512。
接著我們將這些元素從 nums 中刪除,因此 nums 變?yōu)?[14,13,8]。
- 在第二次操作中:
我們挑出第一個元素 14 以及最後一個元素 8。
它們的串接結(jié)果為 148,而我們將這個數(shù)值加到串接值中,所以它將變?yōu)?660。
接著我們將這些元素從 nums 中刪除,因此 nums 變?yōu)?[13]。
- 在第三次操作中:
nums 只剩一個元素,所以我們挑出 13 並加到串接值中,所以它將變?yōu)?673。
接著我們將這個元素從 nums 中刪除,因此 nums 變?yōu)榭铡?/div>
由於串接值為 673,所以答案為 673。


解題思維:
直接模擬即可。不過「刪除」的部分可以改用兩個指標(biāo),一個指向「當(dāng)前」第一個元素而另一個指向最後一個元素。

只要兩個指標(biāo)還尚未「交錯」(即跨過彼此),就把兩個指標(biāo)指到的元素串接在一起並加到串接值中(如果兩個指標(biāo)是指到同一個就直接加到串接值中)。

最後的串接值即為所求。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創(chuàng)作回應(yīng)

相關(guān)創(chuàng)作

更多創(chuàng)作