自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 面试题 02.05. 链表求和

https://leetcode.cn/problems/sum-lists-lcci/description/给定两个用链表表示的整数,每个节点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部。编写函数对这两个整数求和,并用链表形式返回结果。进阶:思考一下,假设这些数位是正向存放的,又该如何解决呢?好它馬的煩,這什么鷄巴吊題,最討厭這種要考慮進位 carry 的題了。 但是不做也不行吼,還是仔細看看吧。題目中有個關鍵點就是 —— 輸入的兩個鏈表都是反向存放數字的,這是很方便的,因此兩個鏈表中同一

2023-10-05 16:19:58 45

原创 面试题 02.04. 分割链表

我們只需要遍歷一遍鏈表即可做到,分流完畢後再把小鏈表和大鏈表合體,最後返回結果即可。输入:head = [1,4,3,2,5,2], x = 3。输入:head = [2,1], x = 2。,请你对链表进行分隔,使得所有。每个分区中各节点的初始相对位置。输出:[1,2,2,4,3,5]的數字,大鏈表記錄大於。链表中节点的数目在范围。给你一个链表的头节点。,創建兩個鏈表 ——

2023-10-05 13:40:16 29

原创 面试题 02.03. 删除中间节点

例如,传入节点 c(位于单向链表 a->b->c->d->e->f 中),将其删除后,剩余链表为 a->b->d->e->f。若链表中的某个节点,既不是链表头节点,也不是链表尾节点,则称其为该链表的「中间节点」。输出:不返回任何数据,从链表中删除传入的节点 5,使链表变为 4->1->9。假定已知链表的某一个中间节点,请实现一种算法,将该节点从链表中删除。输入:节点 5 (位于单向链表 4->5->1->9 中),題目裏的鏈表又是單鏈表只有一個單向指標,無法訪問到。的後繼節點鏈接其後繼的後繼。

2023-09-25 15:55:10 24 1

原创 面试题 02.02. 返回倒数第 k 个节点

https://leetcode.cn/problems/kth-node-from-end-of-list-lcci/description/实现一种算法,找出单向链表中倒数第 kkk 个节点。返回该节点的值。 注意:本题相对原题稍作改动说明:给定的 kkk 保证是有效的。又是鏈結串列題(鏈表),拿到題之後我第一次的想法是先找到尾節點 ,遍歷找到之後發現這是個單鏈表根本就沒有前驅……然後我思考了一下,想到了 「統計鏈表長度」「統計鏈表長度」「統計鏈表長度」 的解法。 可以先遍歷鏈表統計出鏈表結點個數,將鏈

2023-09-25 14:57:01 30 1

原创 面试题 02.01. 移除重复节点

输入:[1, 2, 3, 3, 2, 1] 输出:[1, 2, 3] 、编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。输入:[1, 1, 1, 1, 2] 输出:[1, 2],遍歷整個鏈表,從頭結點開始。进阶:如果不得使用临时缓冲区,该怎么解决?

2023-09-25 13:47:16 18 1

原创 面试题 01.09. 字符串轮转

https://leetcode.cn/problems/string-rotation-lcci/description/字符串轮转。给定两个字符串 和 ,请编写代码检查 是否为 旋转而成(比如, 是 旋转后的字符串)。提示:字符串长度在 [0,100000][0, 100000][0,100000] 范围内。 说明:你能只调用一次检查子串的方法吗?題目中說述的輪轉是什麽意思呢?看了示例1中的 和 瞬間就懂了。也就是把一個單詞串劈開之後拼接到開頭,就是所謂的輪轉了。然後示例2 中的 和 就不能

2023-09-25 08:38:25 25 1

原创 面试题 01.08. 零矩阵

https://leetcode.cn/problems/zero-matrix-lcci/description/ 编写一种算法,若 M×NM\times NM×N 矩阵中某个元素为 000,则将其所在的行与列清零。 這題的描述像不像童年游戲坦克大戰吼?出現 0 我們就把這一行和這一列都置為0。 那我們用兩個循環做做看,用標記陣列的方式來做。 第一次循環就是找 0,找到 0 之後我們做標記。創建兩個 vector 類型的變數作爲標志,分別是 row 和 col 來標記行和列。 vector<int

2023-09-22 13:41:08 39 1

原创 面试题 01.07. 旋转矩阵

class Solution { public: void rotate(vector& matrix) { int sz = matrix.size(); auto tmp = matrix; for (int i = 0; i < sz; i++) { for (int j = 0; j < sz; j++) { tmp[j][sz - i - 1] = matri

2023-09-22 13:09:45 33 1

原创 面试题 01.06. 字符串压缩

https://leetcode.cn/problems/compress-string-lcci/description/字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串 会变为 。若 “压缩” 后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。提示:字符串长度在 [0,50000][0, 50000][0,50000] 范围内。準備三件東西: ① 另開一個字符串用於返回 ② 記錄當前字符的變數 ③ 創建一個計數器 用來

2023-09-22 12:06:55 33 1

原创 面试题 01.05. 一次编辑

https://leetcode.cn/problems/one-away-lcci/ 設字符串 為 AAA, 為 BBB。 想要完成一次編輯,那麽 ABABAB 之間的差值必然不能大於 111。 可以分爲以下四種情況: if={A=BA−B=1B−A=1∣A−B∣>1if=\left\{\begin{matrix} A= B\\ A-B=1\\ B-A=1 \\ |A-B|>1 \end{matrix}\right.if=⎩⎨⎧​A=BA−B=1B−A=1∣A−B∣>1​第一種情況:ABABAB 長度

2023-09-22 11:19:13 27 1

原创 面试题 01.04. 回文排列

https://leetcode.cn/problems/palindrome-permutation-lcci/description/ 首先理解回文串的本質,長度要麽是奇數,要麽是偶數。奇數的情況可以允許一個字符單著,否則是排列不成回文串的。因此我們可以考慮使用雜凑表的映射思路來完成,用 桶來記錄每個字符和字符對應的出現次數,然後再遍歷每個 ,檢視每個鍵的值是奇數還是偶數,如果是奇數,就讓特別處理,這裏用一個計數器來記錄次數,出現奇數就讓 ,但是只能出現一次。擧個例子,像 這樣的回文串,如果放入雜凑桶

2023-09-22 10:13:49 33 1

原创 面试题 01.03. URL化

值得注意的是,這裏要求我們知道字符串的真實長度,所以範圍就別用。重開一個新的陣列,遍歷字符串的每個字符,若字符是空格就添加。到陣列中,不是就直接添加當前字符。最後返回字符串就行。

2023-09-22 09:45:49 23 1

原创 面试题 01.02. 判定是否互为字符重排

如果兩個字符串長度不相等,那必然不能互爲重排,所以可以加個判斷優化一下。拿到題目之後,想了一會,似乎可以使用排序法。過了,但是似乎還有可以優化的點。如果把兩個字符串排序,調用。

2023-09-07 20:55:08 29 1

原创 面试题 01.01. 判定字符是否唯一

class Solution { public: bool isUnique(string s) { unordered_set us; for (int i = 0; i < s.size(); i++) { if (us.count(s[i]) == 0) { us.insert(s[i]); } else { return false;

2023-09-07 17:11:05 26 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除