- 博客(69)
- 收藏
- 关注
原创 leetcode225. 用队列实现栈
请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。你只能使用队列的基本操作 —— 也就是 push to back、peek/pop from front、size 和 is empty 这些操作。你所使用的语言也许不支持队列。你可以使用 list (列表)或者 deque(双端队列)来模拟一个队列 , 只要是标准的队列操作即可。进阶:你能否仅用一个队列来实现栈。
2024-01-10 01:27:47 618
原创 leetcode232. 用栈实现队列
请你仅使用两个栈实现先入先出队列。进阶:你能否实现每个操作均摊时间复杂度为 O(1) 的队列?换句话说,执行 n 个操作的总时间复杂度为 O(n) ,即使其中一个操作可能花费较长时间。
2024-01-10 00:26:58 461
原创 leetcode28. 找出字符串中第一个匹配项的下标
详细的匹配过程为:当匹配到f的时候,发现不匹配,然后去找前面的字符串aabaa子串的最长相等前后缀是多少,例如a是0,aa是1,aab是0,aaba是1,aabaa是2,aabaaf是0。暴力的解法是两层for循环,先遍历文本串,再遍历模式串,依次比较是否相同,如果不同则将模式串向后移动一位。拿上面的例子来看,用aabaaf依次进行匹配,当匹配的到f的时候,发现不相等。答案是aa,长度也就是2,因此要从下标为2的地方继续进行匹配。在遇到f的时候,不匹配了。,因此跳到下标为2的位置,继续进行匹配。
2024-01-04 02:25:21 719
原创 leetcode151. 反转字符串中的单词
给你一个字符串 s ,请你反转字符串中 单词 的顺序。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。
2023-12-29 02:40:26 466
原创 leetcode541. 反转字符串II
给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。
2023-12-29 01:37:23 414
原创 leetcode344. 反转字符串
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
2023-12-28 00:32:14 554
原创 leetcode15. 三数之和
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!= j、i!= k 且 j!= k ,同时还满足 nums[i] + nums[j] + nums[k] == 0。请你返回所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。
2023-12-21 00:54:08 66
原创 leetcode209. 长度最小的子数组
给定一个含有 n 个正整数的数组和一个正整数 target。找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0。
2023-12-03 23:41:14 87
原创 百面深度学习Day1
2、卷积的操作:书中P06有一个详细的卷积运算过程的示例图,非常清晰。如何理解和呢?指的是相比于全连接层(每个输出都与输入相连接),输出层的每一个点都只与输入层的部分点连接,原因在于卷积核远小于特征图的尺寸。指的是在卷积核滑窗的过程中,卷积核参数不变。而全连接层中,不同节点的连接权值都是不同的。那么有一个问题?卷积和全连接层的参数量和计算复杂的哪个大?
2022-09-07 01:13:14 371
原创 java常用数据类型的互相转换(重要)
1、int转stringint i = 5;String s = String.valueOf(i); //常用!String s = i + "";String str = Integer.toString(i);2、string转ints = "12345";int i = Integer.parseInt(s); //常用int i = Integer.valueOf(s).intValue();3、string转int[]String s="123456";int[] ar
2021-09-25 23:45:53 94
原创 剑指 Offer 33. 二叉搜索树的后序遍历序列
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。参考以下这颗二叉搜索树: 5 / \ 2 6 / \ 1 3示例 1:输入: [1,6,3,2,5]输出: false示例 2:输入: [1,3,2,6,5]输出: true方法:递归,找到mid值,left到mid-1是做子树,mid到right-1是右子树。然后对这两个范围进行递归操作。class
2021-09-20 23:03:26 60
原创 剑指 Offer 26. 树的子结构
输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:给定的树 A: 3 / \ 4 5 / \ 1 2给定的树 B: 4 / 1返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。示例 1:输入:A = [1,2,3], B = [3,1]输出:false示例 2:输入:A = [3,4,5,1,2], B = [4,1]输
2021-09-20 19:57:03 57
原创 剑指 Offer 07. 重建二叉树
输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。假设输入的前序遍历和中序遍历的结果中都不含重复的数字示例1:Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]Output: [3,9,20,null,null,15,7]示例 2:Input: preorder = [-1], inorder = [-1]Output: [-1]方法1:把数组放到list中,方便找到索引,然后用递归。public Tr
2021-09-20 19:33:17 53
原创 剑指 Offer 45. 把数组排成最小的数
输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。示例 1:输入: [10,2]输出: "102"示例 2:输入: [3,30,34,5,9]输出: "3033459"预备知识:1、obj1.compareTo(obj2)如果该方法返回0,则表示两个对象相等如果该方法返回一个正整数,则表明obj1大于obj2如果该方法返回一个负整数,则表明obj1小于obj2。2、设数组 numsnums 中任意两数字的字符串为 x 和 y ,则规定排
2021-09-20 18:09:58 93
原创 剑指 Offer 52. 两个链表的第一个公共节点
输入两个链表,找出它们的第一个公共节点。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个列表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。在 A 中,相交节点前有 2 个节
2021-09-01 17:35:47 60
原创 Spring中的循环依赖问题
链接1链接2大致的流程就是:1. 类 A 与 B 中属性相互引用,造成循环依赖2. A 实例化完成,将自己提前曝光到 singletonFactories 缓存中(这里是三级缓存)3. A 实例进行依赖注入,发现自己依赖对象 B,就尝试获取 B 实例引用4. B 此时还没初始化,先进行实例化并将自己曝光到 singletonFactories 缓存中(这里也是三级缓存)5. B 实例进行依赖注入,发现自己依赖对象 A,就尝试获取 A 实例引用6. 由于 A 实例尚未初始化完成,从 singl
2021-08-27 14:50:45 64
原创 剑指 Offer 34. 二叉树中和为某一值的路径
输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。示例:给定如下二叉树,以及目标和 target = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1返回:[ [5,4,11,2], [
2021-08-25 11:22:51 49
原创 剑指 Offer 63. 股票的最大利润z
假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。示例 2:输入: [7,6,4,3,1]输出: 0解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。方法1:动态规划。用dp[]数
2021-08-24 16:38:14 73
原创 剑指 Offer 61. 扑克牌中的顺子
从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。示例 1:输入: [1,2,3,4,5]输出: True示例 2:输入: [0,0,1,2,5]输出: True方法1:这个题要先进行排序,然后判断不能有重复的数字。这是第一点。第二点要记录王的个数,因为0一定排在最前面,并且是顺子的话,每次都要递增1,没有王的时候,末-首=4有一个王的时候,末-第二张
2021-08-24 15:08:40 64
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人