寒假刷雙指標《雙指標》

2021-10-19 12:04:49 字數 2722 閱讀 9860

633. 平方數之和

難度中等163

給定乙個非負整數c,你要判斷是否存在兩個整數ab,使得a2 + b2 = c

示例 1:

輸入:c = 5輸出:true解釋:1 * 1 + 2 * 2 = 5
示例 2:

輸入:c = 3輸出:false
示例 3:

輸入:c = 4輸出:true
示例 4:

輸入:c = 2輸出:true
示例 5:

輸入:c = 1輸出:true
//時間複雜度 根號n

class solution

return false;}}

142. 環形鍊錶 ii

難度中等853

給定乙個鍊錶,返回鍊錶開始入環的第乙個節點。 如果鍊錶無環,則返回null

為了表示給定鍊錶中的環,我們使用整數pos來表示鍊錶尾連線到鍊錶中的位置(索引從 0 開始)。 如果pos-1,則在該鍊錶中沒有環。注意,pos僅僅是用於標識環的情況,並不會作為引數傳遞到函式中。

說明:不允許修改給定的鍊錶。

高階:

示例 1:

輸入:head = [3,2,0,-4], pos = 1輸出:返回索引為 1 的鍊錶節點解釋:鍊錶中有乙個環,其尾部連線到第二個節點。
示例 2:

輸入:head = [1,2], pos = 0輸出:返回索引為 0 的鍊錶節點解釋:鍊錶中有乙個環,其尾部連線到第乙個節點。
示例 3:

輸入:head = [1], pos = -1輸出:返回 null解釋:鍊錶中沒有環。
/**

* definition for singly-linked list.

* class listnode

* }*/public class solution

return first;} }

return null;}}

76. 最小覆蓋子串

難度困難954

給你乙個字串s、乙個字串t。返回s中涵蓋t所有字元的最小子串。如果s中不存在涵蓋t所有字元的子串,則返回空字串""

注意:如果s中存在這樣的子串,我們保證它是唯一的答案。

示例 1:

輸入:s = "adobecodebanc", t = "abc"輸出:"banc"
示例 2:

輸入:s = "a", t = "a"輸出:"a"

class solution 

int l = 0, r = -1;

int len = integer.max_value, ansl = -1, ansr = -1;

int slen = s.length();

while (r < slen)

while (check() && l <= r)

if (ori.containskey(s.charat(l)))

++l;}}

return ansl == -1 ? "" : s.substring(ansl, ansr);

}//比較兩個hashmap是否相同

public boolean check()

} return true;}}

C LeetCode刷題 雙指標

雙指標篇 題名刷題通過率難度 3無重複字元的最長子串 24.5 中等11 盛最多水的容器 43.5 中等15 三數之和 16.1 中等16 最接近的三數之和 34.6 中等18 四數之和 29.8 中等19 刪除鍊錶的倒數第n個節點 29.6 中等26 刪除排序陣列中的重複項 c leetcode刷...

leetcode刷題 雙指標

使用雙指標,乙個指向最左邊,乙個指向最右邊,判斷與目標target的大小關係 public int twosum int numbers,int target else if numbers l numbers r else return newint 0 題目 給定乙個非負整數 c 你要判斷是否存...

leetcode刷題 雙指標

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