
LeetCode
wangchengxi03
这个作者很懒,什么都没留下…
展开
-
LeetCode 225. 用队列实现栈
入栈时直接入队到queue1中,出栈时queue1队尾的元素就是栈顶元素,我们需要获得它,直接将queue1队尾之前的元素全部入队到queue2,取得它,再把queue2的元素全部入队到queue1中。leetcode官方题解的两种思路:一种用了两个队列queue1(作为真正的栈),queue2,入栈时元素e入队到queue2中,在把queue1的元素全部入队到queue2中,最后交换queue1、queue2,这样queue1队首的元素就是栈顶的元素,而queue2是空队。原创 2022-10-26 13:55:45 · 86 阅读 · 0 评论 -
剑指 Offer 35. 复杂链表的复制
直接在原链表上复制每一个节点在原节点的后面(复制操作),1->2->3复制后为1->1->2->2->3->3。再让新的复制节点的random的指针域指向原节点指针的下一个节点,最后把新链表从原链表拆分出来。用两个Node型的动态数组ArrayList,一个为temp,另一个为res,temp存放原链表的每一个节点,res存放复制过来的每一个节点(节点中next指针域和random指针域都没有赋值),然后遍历res,给res中每一个节点的next指针域和random指针域赋值。可以用哈希+递归实现。原创 2022-10-23 13:53:30 · 148 阅读 · 0 评论 -
leetcode290. 单词规律(一种巧妙解法)
【代码】leetcode290. 单词规律(一种巧妙解法)原创 2022-10-10 09:22:52 · 102 阅读 · 0 评论 -
leetcode回溯法相关题目
*解题思路:**数组中有重复的元素,但不能重复的组合,这题还是用回溯法解题,只不过需要去重,有两种方法,法一,用一个used[]数组记录一个元素是否在一次递归中使用,如果nums[i] = nums[i -1]&&used[i - 1] == false,则跳过当前遍历,法二,直接用i > stratIndex && nums[i] == nums[i -1]来判断是否需要去重。回溯法,**难点:**数组中有重复的元素,但结果集中要求不能有重复的组合,注意数组中的每个元素只能使用1次。原创 2022-09-29 21:51:22 · 279 阅读 · 0 评论 -
48. 旋转图像
*思路二:**向将数组上下翻转,后沿着主对角线翻转,最终可以达到将数组顺时针旋转90度的效果。:通过旋转模拟,由外向内,每一次都交换四个元素的位置,直到一层元素都顺时针旋转完毕。原创 2022-09-26 17:09:54 · 108 阅读 · 0 评论 -
56. 合并区间
*解题思路:**先将intervals数组按左边界从小到大排序,要是下一个区间的左边界小于或等于区间的右边界,说明这两个区间可以合并成一个区间,同时更新右边界的值为两个右边界中的最大值,比如[1,5],[2,3],[4,5]可以合并成[1,5]。先将[1,5],[2,3]合并成[1,5],再合并[4,5]为[1,5]。原创 2022-09-26 10:44:57 · 113 阅读 · 0 评论 -
706. 设计哈希映射
*思路一:**用一个大小为10的6次方+1的大小来对应哈希表的键值对映射。缺点:元素太多,存不下去,元素太少浪费空间。数组+链表实现,平衡时间和空间,用链地址法实现。原创 2022-09-26 09:03:34 · 91 阅读 · 0 评论 -
77. 组合
【代码】77. 组合。原创 2022-09-19 21:37:23 · 96 阅读 · 0 评论