- 博客(37)
- 收藏
- 关注
原创 Leetcode刷题之二叉树的遍历(递归法实现)
前序遍历为左中右中序遍历为中左右后序遍历为左右中若当前节点为空则回退,否则push_back后前进,push_back的永远是中结点,要注意函数调用顺序。
2022-12-23 15:30:44
239
原创 Leetcode150. 逆波兰表达式求值
根据 逆波兰表示法,求表达式的值。有效的算符包括 +、-、*、/。每个运算对象可以是整数,也可以是另一个逆波兰表达式。注意 两个整数之间的除法只保留整数部分。可以保证给定的逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。
2022-10-18 17:07:45
136
原创 Leetcode1047. 删除字符串中的所有相邻重复项
例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。又是一道使用栈的经典题目,我们可以将字符串扫描,如果栈为空或者不等于栈顶元素则入栈,否则将栈顶pop出来进行匹配。给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。输入:"abbaca"
2022-10-17 19:29:10
248
原创 Leetcode232. 用栈实现队列
请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true;
2022-10-15 17:07:33
258
原创 459. 重复的子字符串
给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。示例 1:输入: s = "abab"输出: true解释: 可由子串 "ab" 重复两次构成。示例 2:输入: s = "aba"输出: false示例 3:输入: s = "abcabcabcabc"输出: true解释: 可由子串 "abc" 重复四次构成。(或子串 "abcabc" 重复两次构成。)
2022-10-14 18:17:13
200
原创 Leetcode剑指 Offer 58 - II. 左旋转字符串
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。输入: s = "lrloseumgh", k = 6。输入: s = "abcdefg", k = 2。输出: "umghlrlose"输出: "cdefgab"先全部反转,再分别反转。
2022-10-09 22:23:17
160
原创 Leetcode151. 反转字符串中的单词
给你一个字符串 s ,请你反转字符串中 单词 的顺序。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。
2022-10-09 22:15:40
376
原创 剑指 Offer 05. 替换空格
本题如果想降低空间复杂度从(2n+2k)至(n+2k),需要倒着复制字符串,先统计空格,然后用resize为新的大小申请额外内存,之后双指针,一个指向新的最后,一个指向旧的最后倒着复制,遇到空格接下来三个分别是'0' 、'2' 、'%‘。中的每个空格替换成"%20"。请实现一个函数,把字符串。
2022-10-09 18:17:29
96
原创 Leetcode剑指 Offer 05. 替换空格
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."
2022-10-09 18:12:00
207
原创 Leetcode541. 反转字符串 II
给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。
2022-10-09 17:50:43
186
原创 Leetcode344. 反转字符串
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。示例 1:输入:s = ["h","e","l","l","o"]输出:["o","l","l","e","h"]示例 2:输入:s = ["H","a","n","n","a","h"]输出:["h","a","n","n","a","H"]
2022-10-09 17:32:53
88
原创 Leetcode18. 四数之和
给你一个由 n 个整数组成的数组 nums ,和一个目标值 target。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复):a、b、c 和 d 互不相同你可以按 任意顺序 返回答案。
2022-10-08 21:03:41
137
原创 Leetcode454. 四数相加 II
给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足:示例 1:输入:nums1 = [1,2], nums2 = [-2,-1], nums3 = [-1,2], nums4 = [0,2]输出:2解释:两个元组如下:示例 2:输入:nums1 = [0], nums2 = [0], nums3 = [0], nums4 = [0]输出:1。
2022-10-08 19:38:53
94
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人