您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了java如何解決最接近的三數之和問題,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶大家一起來研究并學習一下“java如何解決最接近的三數之和問題”這篇文章吧。
給定一個包括 n 個整數的數組 nums
和 一個目標值 target
。找出 nums
中的三個整數,使得它們的和與 target
最接近。返回這三個數的和。假定每組輸入只存在唯一答案。
例如,給定數組 nums = [-1,2,1,-4], 和 target = 1. 與 target 最接近的三個數的和為 2. (-1 + 2 + 1 = 2).
解析:
代碼的第二行先對數組進行排序,這個排序是從小到大的,然后第5行有一行num[i]!=num[i-1],他是為了防止重復,舉個例子,排序后的數組[-8,-1,-1,-1,2,5]那么他會從第一個-1開始找到[-1,-1,2]這組的和為0,如果沒有上面那行代碼,那么從第二個-1開始也可以找到[-1,-1,2],所以重復了。然后下面的就比較簡單了,三數之和減去其中的一個,剩下的就是其他兩個數的和了,因為是排過序的,所以這里是從兩頭開始往中間找,如果找到直接放到mList中,然后在找,如果小于sum,說明兩數之和小了,所以lo++,因為這里是排過序的,從兩頭往中間找,所以lo只能加不能減,hi只能減不能加。同理當兩數之和大于sum的時候,hi--。
1. 簡單,只需理解基本的概念,就可以編寫適合于各種情況的應用程序;2. 面向對象;3. 分布性,Java是面向網絡的語言;4. 魯棒性,java提供自動垃圾收集來進行內存管理,防止程序員在管理內存時容易產生的錯誤。;5. 安全性,用于網絡、分布環境下的Java必須防止病毒的入侵。6. 體系結構中立,只要安裝了Java運行時系統,就可在任意處理器上運行。7. 可移植性,Java可以方便地移植到網絡上的不同機器。8.解釋執行,Java解釋器直接對Java字節碼進行解釋執行。
以上就是關于“java如何解決最接近的三數之和問題”的內容,如果該文章對您有所幫助并覺得寫得不錯,勞請分享給您的好友一起學習新知識,若想了解更多相關知識內容,請多多關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。