- 博客(14)
- 收藏
- 关注
原创 栈与队列part02
输入: [“2”, “1”, “+”, “3”, " * "] 输出: 9 解释: 该算式转化为常见的中缀算术表达式为:((2 + 1) *输入: [“4”, “13”, “5”, “/”, “+”] 输出: 6 解释: 该算式转化为常见的中缀算术表达式为:(4 + (13 /给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。有效的运算符包括 + , - , * , /。每个运算对象可以是整数,也可以是另一个逆波兰表达式。根据 逆波兰表示法,求表达式的值。
2024-07-14 22:11:47 136
原创 栈与队列part01
void push(int x) 将元素 x 推到队列的末尾 int pop() 从队列的开头移除并返回元素 int peek()输入:“abbaca” 输出:“ca” 解释:例如,在 “abbaca” 中,我们可以删除 “bb”给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串,判断字符串是否有效。给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在完成所有重复项删除操作后返回最终的字符串。可以执行重复项删除操作,所以最后的字符串为 “ca”。
2024-07-14 21:34:50 272
原创 字符串part02
示例 2: 输入: " hello world!" 输出: “world!示例 1: 输入: “the sky is blue” 输出: “blue is sky the”整体的反转思路如上注释所写,具体的细节需要注意,多余的空格如何删除,这些都要注意。输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。给定一个字符串,逐个翻转字符串中的每个单词。
2024-07-14 21:19:45 209
原创 字符串part01
首先第一点,for循环的i+=2*k很巧妙,其次,剩余字符如果大于k小于2k,则end的位置只有前k,如果剩余字符小于k则全部反转,所以反转共用同一个,注意end的取值。示例 2: 输入:[“H”,“a”,“n”,“n”,“a”,“h”] 输出:[“h”,“a”,“n”,“n”,“a”,“H”]示例 1: 输入:[“h”,“e”,“l”,“l”,“o”] 输出:[“o”,“l”,“l”,“e”,“h”]如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。
2024-07-10 21:46:56 301
原创 第三章 哈希表part02
给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。示例: 给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, 2] ]给定数组 nums = [-1, 0, 1, 2, -1, -4],
2024-07-09 22:26:27 1523
原创 第三章 哈希表part01
输入:19 输出:true 解释: 1^2 + 9^2 = 82 8^2 + 2^2 = 68 6^2 + 8^2 = 100 1^2 +「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环。给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。总结,使用数组去解这道题最方便,因为给定了数组的大小是26,所以可以使用数组去模拟set的实现过程。
2024-07-08 21:55:51 647
原创 day03链表1
示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5]示例 2: 输入:head = [], val = 1 输出:[]题意:删除链表中等于给定值 val 的所有节点。添加一个虚拟头节点,这样整体操作较简单。注意返回值,注意这个换的顺序。
2024-07-06 21:59:00 130
原创 day04链表part02
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。一般情况下复制链表进行移位操作,这样的话在操作完可以对该链表重新赋值。3、注意while循环内部的迭代的值是否可以每次都更新。双指针法,注意fast指针到底要要移到哪一个位置上。1、注意ACM模式下要自己写链表的定于。2、考虑虚拟节点的设置。
2024-07-06 19:20:53 197
原创 数组part2
1: 输入:target = 7, nums = [2,3,1,2,4,3] 输出:2 解释:子数组 [4,3]输入:target = 11, nums = [1,1,1,1,1,1,1,1] 输出:0。输入:nums = [-4,-1,0,3,10] 输出:[0,1,9,16,100]输入:nums = [-7,-3,2,3,11] 输出:[4,9,9,49,121]2、根据题目中给的数组是有序的,可以考虑使用双指针的方法,注意等号的条件。解释:平方后,数组变为 [16,1,0,9,100]
2024-07-04 22:02:48 567
原创 数组part01
题目链接:题目给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返回 -1。
2024-07-02 21:38:13 217
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人