久久精品国产99国产精品,农村大炕弄老女人,人马配速90分钟,香蕉成人伊视频在线观看

提高LeetCode刷題效率的方法分享

題目1:兩數(shù)之和(Two Sum)LeetCode刷題是程序員面試準(zhǔn)備中常見的一部分,能幫助我們熟悉各種算法、數(shù)據(jù)結(jié)構(gòu),并為面試做好準(zhǔn)備。在LeetCode題庫中,題目1是非常經(jīng)典的一道題目,即Tw

題目1:兩數(shù)之和(Two Sum)

LeetCode刷題是程序員面試準(zhǔn)備中常見的一部分,能幫助我們熟悉各種算法、數(shù)據(jù)結(jié)構(gòu),并為面試做好準(zhǔn)備。在LeetCode題庫中,題目1是非常經(jīng)典的一道題目,即Two Sum。題目要求給定一個整數(shù)數(shù)組和一個目標(biāo)值,找出數(shù)組中和為目標(biāo)值的兩個數(shù),并返回它們的索引。其中,第一個索引必須小于第二個索引。假設(shè)每個輸入只有一個解。

解法1:排序加二分查找

為了解決這個問題,我們可以采用排序算法結(jié)合二分查找來實現(xiàn)。首先,我們對原始數(shù)組進(jìn)行排序,然后使用雙指針法,一個指向數(shù)組開頭,一個指向數(shù)組末尾,不斷逼近目標(biāo)值。如果找到兩個數(shù)的和等于目標(biāo)值,則記錄它們的索引并返回結(jié)果。

```java

public class Solution {

public int[] twoSum(int[] numbers, int target) {

int[] arr (numbers, numbers.length);

int[] result new int[2];

(numbers);

int i0;

int j numbers.length-1;

while(i < j){

if((numbers[i] numbers[j]) > target){

j--;

} else if((numbers[i] numbers[j]) < target){

i ;

} else {

int temp1 numbers[i];

int temp2 numbers[j];

int index1 0, index2 0;

boolean flag1 true;

boolean flag2 true;

for(int k0; k

if(flag1){

if(arr[k] temp1){

index1 k;

flag1 false;

continue;

}

}

if(flag2){

if(arr[k] temp2){

index2 k;

flag2 false;

continue;

}

}

}

if(index1 < index2){

result[0] index1;

result[1] index2;

} else {

result[0] index2;

result[1] index1;

}

break;

}

}

return result;

}

}

```

解法2:利用HashMap映射表

另一種高效的解法是利用HashMap來建立數(shù)值與索引的映射關(guān)系。我們遍歷數(shù)組,在建立映射關(guān)系的同時,尋找當(dāng)前數(shù)字對應(yīng)的另一個數(shù)字是否已經(jīng)存在于HashMap中。如果找到匹配的數(shù)字,即可得到結(jié)果。

```java

public class Solution {

public int[] twoSum(int[] numbers, int target) {

HashMap map new HashMap<>();

for(int i0; i

map.put(numbers[i], i);

}

int[] result new int[2];

for(int i0; i

int waitCal target - numbers[i];

if((waitCal) ! null (waitCal) > i){

result[0] i;

result[1] (waitCal);

break;

}

}

return result;

}

}

```

通過以上兩種解法,我們可以在不同場景下選擇合適的方法來解決問題,提高LeetCode刷題的效率,同時增強(qiáng)對各種算法思想的理解。持續(xù)刷題,保持學(xué)習(xí),才能在面試中游刃有余地解決各類算法問題。

標(biāo)簽:
主站蜘蛛池模板: 正阳县| 天等县| 惠东县| 平潭县| 德令哈市| 平泉县| 广汉市| 东海县| 秭归县| 渭南市| 宜丰县| 武鸣县| 林周县| 津南区| 兴和县| 嵊泗县| 肥西县| 法库县| 嘉善县| 永定县| 晋中市| 万全县| 陆丰市| 新竹县| 章丘市| 古丈县| 新巴尔虎右旗| 台江县| 左权县| 乐陵市| 綦江县| 类乌齐县| 丰城市| 高唐县| 开封市| 松阳县| 耿马| 六枝特区| 房产| 新建县| 西青区|