国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

知名互聯(lián)網(wǎng)公司校招中常見的算法題(6-8)

2023-04-26 06:37 作者:good7ob  | 我要投稿

題目六:無重復(fù)字符的最長子串

給定一個字符串,找出不含有重復(fù)字符的最長子串的長度。

解決思路:

我們可以用滑動窗口來解決這個問題。我們用兩個指針 i 和 j 來表示窗口的左右邊界。每次移動右指針 j,同時用哈希表記錄每個字符出現(xiàn)的位置。如果當前字符已經(jīng)在哈希表中出現(xiàn)過了,那么就將左指針 i 移動到該字符上次出現(xiàn)的位置的下一個位置。每次更新最長子串的長度。

代碼實現(xiàn):

public int lengthOfLongestSubstring(String s) {
? int n = s.length();
? int i = 0;
? int j = 0;
? int maxLen = 0;
? Map<Character, Integer> map = new HashMap<>();


? while (j < n) {
? ? ? char c = s.charAt(j);
? ? ? if (map.containsKey(c)) {
? ? ? ? ? i = Math.max(i, map.get(c) + 1);
? ? ? }
? ? ? map.put(c, j);
? ? ? maxLen = Math.max(maxLen, j - i + 1);
? ? ? j++;
? }
? return maxLen;
}

題目七:合并兩個有序鏈表

給定兩個有序鏈表,將它們合并成一個新的有序鏈表并返回。

解決思路:

我們可以用遞歸的方法來解決這個問題。我們將兩個鏈表的頭節(jié)點進行比較,將較小的節(jié)點作為合并后鏈表的頭節(jié)點,并將該節(jié)點的 next 指向遞歸合并后的鏈表。

代碼實現(xiàn):

public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
? if (l1 == null) {
? ? ? return l2;
? }
? if (l2 == null) {
? ? ? return l1;
? }
? if (l1.val <= l2.val) {
? ? ? l1.next = mergeTwoLists(l1.next, l2);
? ? ? return l1;
? } else {
? ? ? l2.next = mergeTwoLists(l1, l2.next);
? ? ? return l2;
? }
}

題目八:最小棧

設(shè)計一個支持 push、pop、top 和在常數(shù)時間內(nèi)檢索到最小元素的操作的棧。

解決思路:

我們可以用兩個棧來實現(xiàn)這個問題。一個棧用來存儲元素,另一個棧用來存儲當前棧中的最小值。

具體來說,當一個元素被壓入棧時,我們同時將該元素壓入最小棧中,如果該元素比最小棧的棧頂元素小,則將該元素也壓入最小棧中。當一個元素從棧中彈出時,我們同時將該元素從最小棧中彈出。當我們需要獲取當前棧中的最小元素時,我們只需要查看最小棧的棧頂元素即可。

代碼實現(xiàn):

class MinStack {
? Stack<Integer> stack;
? Stack<Integer> minStack;
? public MinStack() {
? stack = new Stack<>();
? minStack = new Stack<>();
}
public void push(int val) {
? stack.push(val);
? if (minStack.isEmpty() || val <= minStack.peek()) {
? ? ? minStack.push(val);
? }
}
public void pop() {
? if (stack.peek().equals(minStack.peek())) {
? ? ? minStack.pop();
? }
? stack.pop();
}
public int top() {
? return stack.peek();
}
public int getMin() {
? return minStack.peek();
}
}

以上是關(guān)于常見算法題的解決思路、代碼實現(xiàn)以及實際案例的詳細講解。對于互聯(lián)網(wǎng)公司的校招來說,掌握這些算法題可以幫助我們更好地應(yīng)對面試。當然,還需要多多練習,才能真正掌握這些算法。


知名互聯(lián)網(wǎng)公司校招中常見的算法題(6-8)的評論 (共 條)

分享到微博請遵守國家法律
贵港市| 革吉县| 吴忠市| 陆川县| 山东省| 麻城市| 武汉市| 新野县| 南昌市| 榆树市| 双江| 兴仁县| 六盘水市| 绥江县| 南部县| 保靖县| 顺昌县| 乳源| 岑巩县| 古丈县| 康马县| 泸溪县| 汉中市| 冷水江市| 南华县| 淮北市| 措勤县| 板桥市| 新田县| 木里| 南昌县| 山丹县| 鄱阳县| 沙湾县| 长乐市| 宜兰县| 潢川县| 忻州市| 土默特右旗| 紫云| 仁怀市|