leetcode刷題 雙指標

2021-10-24 16:19:47 字數 2297 閱讀 4728

使用雙指標,乙個指向最左邊,乙個指向最右邊,判斷與目標target的大小關係

public

int[

]twosum

(int

numbers,

int target)

else

if(numbers[l]

+numbers[r]

else

}return

newint[0

];}

題目:給定乙個非負整數 c ,你要判斷是否存在兩個整數 a 和 b,使得 a2 + b2 = c 。

思路:雙指標,左邊從0開始,右邊取c的開平方,

public

boolean

judgesquaresum

(int c)

else

if(r*r+l*l>c)

else

}return

false

;}

題目:編寫乙個函式,以字串作為輸入,反轉該字串中的母音字母。

思路:雙指標,從兩邊開始

public string reversevowels

(string s)

elseif(

isyuan

(ch[l]))

elseif(

isyuan

(ch[r]))

else

}return string.

valueof

(ch);}

public

boolean

isyuan

(char c)

return

false

;}

題目:給定乙個非空字串 s,最多刪除乙個字元。判斷是否能成為回文字串。

思路:從兩邊遍歷,如果相等就向中間移動,如果不相等,就判斷去掉乙個字元後能否相等(只要有一邊能相等即可)z

public

boolean

validpalindrome

(string s)

else

}return

true;}

public

boolean

ispalindrome

(string s,

int l,

int r)

else

}return

true

;}

題目:給你兩個有序整數陣列 nums1 和 nums2,請你將 nums2 合併到 nums1 中,使 nums1 成為乙個有序陣列。

思路:關鍵是先將較大的數填到nums1末尾

public

void

merge

(int

nums1,

int m,

int[

] nums2,

int n)

else

r--;}

if(n>0)

}}

題目:給定乙個鍊錶,判斷鍊錶中是否有環。

思路:快慢指標,如果兩個指標最終相遇,則表明有環。

public

boolean

hascycle

(listnode head)

return

false

;}

題目:給定乙個字串和乙個字串字典,找到字典裡面最長的字串,該字串可以通過刪除給定字串的某些字元來得到。如果答案不止乙個,返回長度最長且字典順序最小的字串。如果答案不存在,則返回空字串。

思路:先寫個函式判斷s1是不是s的子串,如果是的話就加入hashmap中,map的鍵是s1的長度,值是s1,如果字典中1.沒有那個鍵2.有鍵但是值的字典順序大於s1,就將s1加入字典

坑:字典順序不是指在煉表裡的順序,是它本身的順序 abpublic

static string findlongestword

(string s, list

d)if

(maxreturn map.

get(max)

==null?

"":map.

get(max);}

public

static

boolean

issubstring

(string s1,string s2)

else

}return j == s2.

length()

;}

leetcode刷題 雙指標

給定乙個已按照公升序排列 的有序陣列,找到兩個數使得它們相加之和等於目標數。函式應該返回這兩個下標值 index1 和 index2,其中 index1 必須小於 index2。說明 返回的下標值 index1 和 index2 不是從零開始的。你可以假設每個輸入只對應唯一的答案,而且你不可以重複使...

leetcode刷題 演算法(1) 雙指標

167.two sum ii input array is sorted easy 633.sum of square numbers easy 注意 大數,以及臨界情況 345.reverse vowels of a string easy 注意 大寫情況 680.valid palindrome...

Leetcode刷題筆記(C ) 雙指標

給定乙個排序陣列,你需要在 原地 刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在 原地 修改輸入陣列 並在使用 o 1 額外空間的條件下完成。示例 1 給定陣列 nums 1,1,2 函式應該返回新的長度 2,並且原陣列 nums 的前兩個元素被...