- 博客(26)
- 收藏
- 关注
原创 算法通关村--第九关白银挑战
据题意,如果nums[mid-1]、nums[mid]、nums[mid+1].递增的话,那山顶必在mid+1--right部分,同理如果三者递减,那么山顶必在left--mid-1部分。如果nums[mid-1]<nums[mid]>nums[mid+1].直接return。本题要寻找最小值,如果nums[left]<nums[mid]那么nums在left--mid递增,最小值不会在这段区间里。相反,如果nums[left]>nums[mid]则区间内不单调,那么单调区间一定在另一半区间。
2023-11-11 18:30:39 50 1
原创 算法通关村--第六关青铜挑战
对于一棵树or子树而言,假设其根节点为root,那么其左孩子一定是其左子树的根节点,而这个节点在前序遍历中对应的就是其左子树序列的第一个节点。对于root的右孩子也同理,其右孩子一定是其右子树序列的第一个节点。那么在前序序列中,如何找到对于root而言的左子树和右子树的分界呢?对于树或者子树,假设其根节点为root,其左孩子一定是其左子树后序序列最后一个节点,其右孩子一定是其右子树后序序列最后一个节点,那么如何在给定的整棵树的后序序列中找到对应节点的左子树区间和右子树区间呢?
2023-11-06 20:21:14 36
原创 算法通过村--第五关白银挑战
需要实现栈的后进先出,入栈的时候就得让后面进的排队排到队列的前面。入队时先将入队元素放到queue2中,再将queue1中的所有元素出队到queue2中,此时在queue2中,后进来的元素就拍到了队首,queue1为空,再将queue2的元素全部出队到queue1中。用两个栈stack1(用于实现入队操作的栈)和stack2(用于实现出队操作的栈)。要实现队列的先进先出,在出队的时候先检查stack2是否为空,将需要出栈的stack1的内容全部压栈到stack2中,然后从stack2实现出队操作。
2023-10-30 22:05:57 43 1
原创 算法通关村--第三关数组黄金挑战
这题跟白银挑战的奇偶分类的有点像,只不过这个是分三类,那就一类一类来,左右指针,先将右边的0换到左边,记录下最后一个0的位置,再从此位置开始 将右边所有的1换到左边。
2023-10-24 16:37:45 36
原创 算法通关村--第三关数组白银挑战
将右边的偶数换到左边,把左边的奇数换到右边。我认为删除数组中的元素可以分为两步,第一步是寻找需要删除的元素(可以是多个),第二步是将找到的应该被删除的元素之后的元素前移。,在数组遍历中,每当找到一个需要删除的元素的时候move_step++;这题涉及到离散数学的知识(王道书里见过),假设数组A是由子串‘a’和子串‘b’组成。由于子串a,b的内容长度都不确定,那么不妨设A轮转后的数组B恰好能用 B=ba来表示。则 (ab)逆=b逆a逆 这个时候对于b逆 以及a逆 分别原地逆置就得到了 ba。
2023-10-24 16:25:03 62
原创 算法通关村--数组青铜挑战
两个数组都是升序的,“空位置”在nums1的后面,这里应该放两个数组中最大的那一些数。那么就从两个数组最后面开始比较,较大的放入空位。这样nums1中前面的位置就可以被覆盖了。
2023-10-24 15:42:08 35
原创 算法通关村第二关--K个一组反转
据题意,设置一个Int count=1;跟着链表遍历递增,如果count%k==0那么可以对区间内的节点进行反转。
2023-10-24 10:33:42 33
原创 算法通关村第一关-黄金挑战-链表环的问题
相遇后fast回到head起始处,slow从相遇点开始和fast每次走一步,下一次相遇的节点便是环的入口。设置快慢指针快指针每次走两步慢指针每次走一步,如果有环一定会相遇,即fast==slow;
2023-10-18 20:10:34 124 1
原创 算法通关村第一关链表经典问题笔记
并且注意,在最后return dummy.next 而不是 return head;所以在解决算法问题的时候将链表节点存入某种数据结构再通过对该数据结构(比如栈,集合,哈希)进行访问即可直接找出。对于涉及到对链表头结点的删除或者在其之前插入的问题,请务必设置一个虚拟头结点。由于单向链表的特性是不好直接找出。
2023-10-18 19:53:39 130 1
原创 算法通关村第一关-青铜挑战-链表
这里的val就是当前结点的值,next指向下一个结点。因为两个变量都是public的,创建对象后能直接使用listnode.val和listnode.next来操作,虽然违背了面向对象的设计要求,但是上面的代码更为精简,因此在算法题目中应用广泛。这样写算法的时候应该就不用因为删除头结点或者在头结点前插入时单独讨论啦。需要注意的点:当涉及到头结点删除或者插入时,创建一个虚拟节点。
2023-10-17 21:12:15 133
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人