摘要:一有序數(shù)組的題目描述在有序數(shù)組中找出兩個數(shù),使它們的和為。解題思路使用雙指針,一個指針指向值較小的元素,一個指針指向值較大的元素。輸出二兩數(shù)平方和判斷一個數(shù)是否為數(shù)平方和開平方根
一、有序數(shù)組的 Two Sum
Input: numbers={2, 7, 11, 15}, target=9 Output: index1=1, index2=2
題目描述:在有序數(shù)組中找出兩個數(shù),使它們的和為 target。
解題思路:使用雙指針,一個指針指向值較小的元素,一個指針指向值較大的元素。指向較小元素的指針從頭向尾遍歷,指向較大元素的指針從尾向頭遍歷。
如果兩個指針指向元素的和 sum == target,那么得到要求的結(jié)果;
如果 sum > target,移動較大的元素,使 sum 變小一些;
如果 sum < target,移動較小的元素,使 sum 變大一些。
import java.util.Arrays; /** * Input: numbers={2, 7, 11, 15}, target=9 * Output: index1=1, index2=2 * 題目描述:在有序數(shù)組中找出兩個數(shù),使它們的和為 target。 * * 使用雙指針,一個指針指向值較小的元素,一個指針指向值較大的元素。指向較小元素的指針從頭向尾遍歷, * 指向較大元素的指針從尾向頭遍歷。 * * 如果兩個指針指向元素的和 sum == target,那么得到要求的結(jié)果; * 如果 sum > target,移動較大的元素,使 sum 變小一些; * 如果 sum < target,移動較小的元素,使 sum 變大一些。 */ public class TwoSum { public static int[] towSum(int[] numbers, int target){ int i = 0; int j = numbers.length - 1; int sum; while(i < j){ sum = numbers[i] + numbers[j]; if(sum > target){ j--; }else if(sum < target){ i++; }else{ return new int[]{i+1,j+1}; } } return null; } public static void main(String[] args) { int numbers[] = {2,7,11,15}; int target = 9; //輸出[1, 2] System.out.println(Arrays.toString(TwoSum.towSum(numbers, target))); } }二、兩數(shù)平方和
/** * 判斷一個數(shù)是否為2數(shù)平方和 * Input: 5 * Output: True * Explanation: 1 * 1 + 2 * 2 = 5 * @param number * @return */ public static boolean judgeSqrtSum(int number){ int i = 0; //開平方根 int j = (int)Math.sqrt(number); int result; while(i < j){ result = i * i + j * j; if(result < number){ i ++; }else if(result > number){ j--; }else{ return true; } } return false; }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/75543.html
摘要:盡量減少操作次數(shù)。樣例如樣例所示,數(shù)組,移動完成后變成,下面來講解雙指針的做法。這樣我們就完成了元素的移動,同時也保持了非元素的相對順序。 目錄 1、題目2、思路...
摘要:此專欄文章是對力扣上算法題目各種方法的總結(jié)和歸納整理出最重要的思路和知識重點并以思維導(dǎo)圖形式呈現(xiàn)當(dāng)然也會加上我對導(dǎo)圖的詳解目的是為了更方便快捷的記憶和回憶算法重點不用每次都重復(fù)看題解畢竟算法不是做了一遍就能完全記住的所 ...
摘要:微信公眾號記錄截圖記錄截圖目前關(guān)于這塊算法與數(shù)據(jù)結(jié)構(gòu)的安排前。已攻略返回目錄目前已攻略篇文章。會根據(jù)題解以及留言內(nèi)容,進(jìn)行補充,并添加上提供題解的小伙伴的昵稱和地址。本許可協(xié)議授權(quán)之外的使用權(quán)限可以從處獲得。 Create by jsliang on 2019-07-15 11:54:45 Recently revised in 2019-07-15 15:25:25 一 目錄 不...
此專欄文章是對力扣上算法題目各種方法的總結(jié)和歸納, 整理出最重要的思路和知識重點并以思維導(dǎo)圖形式呈現(xiàn), 當(dāng)然也會加上我對導(dǎo)圖的詳解. 目的是為了更方便快捷的記憶和回憶算法重點(不用每次都重復(fù)看題解), 畢竟算法不是做了一遍就能完全記住的. 所以本文適合已經(jīng)知道解題思路和方法, 想進(jìn)一步加強理解和記憶的朋友, 并不適合第一次接觸此題的朋友(可以根據(jù)題號先去力扣看看官方題解, 然后再看本文內(nèi)容). 關(guān)...
摘要:此專欄文章是對力扣上算法題目各種方法的總結(jié)和歸納整理出最重要的思路和知識重點并以思維導(dǎo)圖形式呈現(xiàn)當(dāng)然也會加上我對導(dǎo)圖的詳解目的是為了更方便快捷的記憶和回憶算法重點不用每次都重復(fù)看題解畢竟算法不是做了一遍就能完全記住的所 ...
閱讀 3980·2021-11-16 11:44
閱讀 5235·2021-10-09 09:54
閱讀 2039·2019-08-30 15:44
閱讀 1692·2019-08-29 17:22
閱讀 2765·2019-08-29 14:11
閱讀 3401·2019-08-26 13:25
閱讀 2333·2019-08-26 11:55
閱讀 1603·2019-08-26 10:37