自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (1)
  • 收藏
  • 关注

原创 位运算的一些技巧

1. 两个数异或:相当于每一位相加,而不考虑进位;2. 两个数相与,并左移一位:相当于求得进位;3. 一个数n与其减一的数相与(即n&(n-1)),等价于去掉最左边的1如n=10二进制为1010,n&(n-1)=1000应用以上技巧可以解决一些算法题:下面是剑指offer上的一道题:class Solution {public: int Add(int n...

2019-12-11 20:24:23 491

原创 leveldb 源码剖析之二 内存管理 arena.cc arena.h

leveldb内存管理主要是通过arena.cc arena.h这两个文件来实现的,其中arena.h定义了一个Arena类,arena.cc为各种成员函数的具体实现。相比于STL的空间配置,leveldb的整个框架还是比较简单的。首先给出大概框架:首先看arena.h头文件:#ifndef STORAGE_LEVELDB_UTIL_ARENA_H_#define STORAGE_LEV...

2019-12-09 19:20:57 288

原创 合并K个排序链表(C++实现)

Leetcode第23题,一道hard题。leetcode 231.分治法实现方法其实和普通的归并排序差不多,最大的区别是这里我们每一次合并只需要处理两个链表就行了。class Solution {public: ListNode* mergeKLists(vector<ListNode*>& lists) { if(lists.size()=...

2019-12-03 18:44:40 788

原创 面试 扔鸡蛋问题

题目描述:两个软硬程度一样但未知的鸡蛋,它们有可能都在一楼就摔碎,也可能从一百层楼摔下来没事。有座100层的建筑,要你用这两个鸡蛋确定哪一层是鸡蛋可以安全落下的最高位置,并且试探次数最少。这是动态一个动态规划问题:假设你在第i层楼上扔下一个鸡蛋,会出现以下两种情况:蛋碎了,那么你必须用剩下的一个蛋从第一层往上试探才能完成任务,最多i-1次蛋没碎,上面还有n-i层,这时候你可以将第i层当...

2019-11-20 23:08:45 258

原创 ubuntu 软件安装

DEB 包dpkg -i package.deb 安装/更新一个 deb 包dpkg -r package_name 从系统删除一个 deb 包dpkg -l 显示系统中所有已经安装的 deb 包dpkg -l | grep httpd 显示所有名称中包含 "httpd" 字样的deb包dpkg -s package_name 获得已经安装在系统中一个特殊包的信息dpkg -L pac...

2019-10-18 12:42:05 226

原创 二叉树的遍历与重建

前面文章已讲到了二叉树的几种典型的遍历方式:主要分为两大类1. 深度优先(DFS):前序遍历,中序遍历,后序遍历2. 宽度优先(BFS)这几种遍历的具体实现前面的文章已经实现过了,这篇文章重点分析如何根据已有的前序遍历和中序遍历重建二叉树(或者给定中序遍历和后序遍历)首先看一下三种遍历的差别:简单来讲:前序遍历顺序(中左右)中序遍历(左中右)后序遍历(左右中)下面给出一个具体...

2019-10-15 21:18:14 168

原创 二叉树的几种遍历方法(BFS,DFS)

二叉树的遍历应该是一个基本操作,有很多相关的题目,这篇文章就用几种不同的方法来实现遍历整个遍历过程。先定义一下二叉树的节点:struct TreeNode { * int val; * TreeNode *lc; * TreeNode *rc; * TreeNode(int x) : val(x), left(NULL), right(NULL) {}...

2019-10-14 12:35:30 622

原创 实现atoi()函数,字符串转整型

*实现atoi()函数其实LeetCode 的一道中等题,具体题目如下:这道题目的基本思路并不难,麻烦的在于各种边界条件的判断,整个转换必须处理好如下几个问题:开始连续的空格后接数字正负号的处理出现其他非数字的字符溢出问题(题目规定只能存储32位数字,因此无法使用long long等) (关键问题) 实现代码如下:class Solution {public: in...

2019-10-12 16:03:12 273

原创 链表相关问题分析part2(寻找公共节点,是否有环)

这篇文章主要是分析一下链表是否有环问题(LeetCode141题)主要方法类似于上一篇文章https://blog.csdn.net/you558/article/details/102409450题目描述如下:思路一:遍历链表,利用一个哈希表保存遍历到的节点地址,同时判断该节点的下一个节点是否在保存的哈希表中,若存在,则说明链表有环;反之,若遍历到某一节点为nullptr,则说明链表无...

2019-10-08 23:07:02 128

原创 链表相关问题分析part1(寻找公共节点,是否有环)

这篇文章主要是分析一下最近做过的两道leetcode链表相关的题目,这两道题目有很大的相似,分别为LeetCode160题和LeetCode141题。首先来看一下160题(相交链表):思路一:看到这道题目首先第一想法就是遍历其中一个链表A,用一个哈希表来存储每一个节点,然后在遍历另外一个链表B,判断B中是否存在一个节点的next节点存在于刚存储的哈希表中,若存在,则找到了相交节点,反之则两...

2019-10-08 20:56:56 175

原创 字符串反转 leetcode 344

题目如下:这是一道easy题,大概思路有两种:双指针法两个指针指向数组的首部和尾部,交换两个指针指向的字符,然后两个指针逐渐向中间靠拢,当首指针大于尾指针时结束循环。递归定义一个递归函数,每次交换数组首部和尾部的字符,直到递归结束。下面给出具体的实现:双指针法class Solution {public: void reverseString(vector<c...

2019-10-07 18:41:07 123

原创 二分查找的一些想法 LeetCode 704题

二分法

2019-10-05 12:44:40 165

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除