Swift-尋找滿足條件的兩個數(shù)

題目:快速找出一個數(shù)組中的兩個數(shù)字,使兩個數(shù)字之和為一個特定的值。假設(shè)數(shù)組中至少存在一組符合要求的解。
常規(guī)解法是遍歷兩次數(shù)組,時間復(fù)雜度為O(N2),為了更快找到的兩個符合條件的數(shù),可以先通過數(shù)組有序,從前后兩個方向遍歷數(shù)組,求解結(jié)果.
核心代碼:
<pre><code>` func sumNumber(arr:[Int],sum:Int)->(Int,Int) {
var i:Int = 0
var j:Int = arr.count - 1

    while i < j {
        if arr[i] + arr[j] < sum {
            i += 1
        } else if arr[i] + arr[j] > sum {
            j -= 1
        } else {
            return (i,j)
        }
    }
    return (-1,-1)
}`</code></pre>

測試代碼:
<pre><code>var sumArr:[Int] = [100,5,6,8,3,7,9,10,0,40,1,2] find.quickSort(arr: &sumArr, low: 0, high: sumArr.count - 1) var sumResult4:(Int,Int) = find.sumNumber(arr: sumArr, sum: 10) print("FlyElephant---\(sumResult4)")</code></pre>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗。 張土汪:刷leetcod...
    土汪閱讀 12,890評論 0 33
  • 53.計算字符 在字符串中獲取字符值的數(shù)量, 可以使用字符串字符屬性中的計數(shù)屬性: let unusualMena...
    無灃閱讀 1,257評論 0 4
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,667評論 0 4
  • 夫妻關(guān)系,其實是一種既常見又特別的關(guān)系。 常見的是,大多數(shù)人到了一定年齡都會結(jié)婚,組建家庭。 特別的是,毫不相干的...
    海星_love閱讀 189評論 0 0
  • 夏樹蒼翠時,少年揚旗歸
    星球大眼怪閱讀 176評論 0 0

友情鏈接更多精彩內(nèi)容