看了樓主的答案,思路清晰,但是有兩點(diǎn)仍可改進(jìn):
1. 使用二分法搜索可將時(shí)間復(fù)雜度從O(n)將至O(logn)
2. 在求乘積的過程中,需要考慮數(shù)據(jù)溢出的情況,畢竟nums可能有1024個(gè)數(shù)字,每個(gè)數(shù)字在1-10之間。可以設(shè)定一個(gè)閾值,達(dá)到閾值后要,左右兩側(cè)的乘積可以約分。
華為OD機(jī)試真題2023_Swift_100_數(shù)組的中心位置解題思路雙層 for 循環(huán)將數(shù)組當(dāng)前下標(biāo)的左側(cè)和右側(cè)乘積算出來,再進(jìn)行比較,如果相等就將當(dāng)前下標(biāo)保存到數(shù)組中,最后取數(shù)組的最小值即可