![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
工作面试题
只会写臭虫
这个作者很懒,什么都没留下…
展开
-
手写堆排序
若从小到大排序,把原有数组维护成一个大顶堆即可,注意从非叶子结点中的最后一个结点倒序遍历。 若二叉树结点下标从0开始,某个节点下标为k,则它的左右子节点的下标分别为2k+1,2k+2。 获得某个节点的父节点下标的方法为(idx+1)/2-1 若二叉树结点下标从1开始,某个节点下标为k,则它的左右子节点的下标分别为2k,2k+1,获得某个节点的父节点下标的方法为idx/2。 代码如下: #incl...原创 2019-08-16 23:34:26 · 521 阅读 · 0 评论 -
LeetCode 234. 回文链表
请判断一个链表是否为回文链表。 class Solution { public: bool isPalindrome(ListNode* head) { if(!head) return true; //利用快慢指针找出链表的中点 ListNode* fast=head; ListNode* slow...原创 2019-08-17 12:51:25 · 99 阅读 · 0 评论 -
反转链表
方法一:三指针法 每次记录当前遍历指针cur,前一个指针pre,和下一个指针next class Solution { public: ListNode* reverseList(ListNode* head) { ListNode* pre=NULL; ListNode* cur=head; while(cur){ ...原创 2019-08-17 13:36:41 · 86 阅读 · 0 评论 -
LeetCode 48. 旋转图像
方法1: 先进行矩阵转置,再将矩阵每一行逆序。 class Solution { public: void rotate(vector<vector<int>>& matrix) { int n=matrix.size(); if(n==0) return; for(int i=0;i...原创 2019-08-18 10:49:57 · 97 阅读 · 0 评论