JackZhangNJU的专栏

编程菜鸟,请多多指教!

为什么用成员初始化列表会快一些?

首先把数据成员按类型分类 1。内置数据类型,复合类型(指针,引用) 2。用户定义类型(类类型) 分情况说明: 对于类型1,在成员初始化列表和构造函数体内进行,在性能和结果上都是一样的 对于类型2,结果上相同,但是性能上存在很大的差别 因为类类型的数据成员对象在进入函数体是已经构造完成,...

2018-09-10 15:27:54

阅读数 360

评论数 0

C++ 自定义二元谓词函数的写法

写的方法 struct cmp { bool operator()(pair<int, int>& a, pair&amp...

2018-09-08 15:15:25

阅读数 328

评论数 0

增长一下姿势:什么是彩虹表?

https://blog.csdn.net/nie19940803/article/details/76641498 https://www.cnblogs.com/yushuo1990/p/6007068.html https://blog.csdn.net/gscaiyucheng/art...

2018-09-05 13:39:06

阅读数 149

评论数 0

虚基类调用顺序 + 不能继承的类

https://blog.csdn.net/owen7500/article/details/52432970 https://www.cnblogs.com/haoyuanyuan/archive/2013/04/25/3041250.html

2018-09-05 13:36:24

阅读数 152

评论数 0

PDD笔试题:最小字符串

直接递归即可 需要注意的地方是set是有序的,所以DFS得到第一个结果one就是最终答案 代码如下: #include <iostream> #include <vector&amp...

2018-08-30 19:55:54

阅读数 599

评论数 0

一般递归与尾递归

参考这个博客一般递归与尾递归

2018-08-15 14:15:07

阅读数 82

评论数 0

LeetCode上一道经典的面试题-O(1)实现LRU Cache

参考这个博客这里写链接内容 思路: 每次数据项被查询到时,都将此数据项移动到链表头部(O(1)的时间复杂度) 这样,在进行过多次查找操作后,最近被使用过的内容就向链表的头移动,而没有被使用的内容就向链表的后面移动。 当需要替换时,链表最后的位置就是最近最少被使用的数据项,我们只需要将最新...

2018-08-09 15:42:12

阅读数 180

评论数 0

在 Shell 脚本中调用另一个 Shell 脚本的三种方式

详情参考这个博客,写的很清楚,这个和进程里面的fork,exec很类似

2018-08-06 13:25:50

阅读数 209

评论数 0

0交换排序

长度为n的数组乱序存放着0至n-1. 现在只能进行0与其他数的交换,完成以下函数 #include <iostream> #include <vector> #include ...

2018-07-01 18:52:46

阅读数 597

评论数 0

C++ 虚函数表指针以及虚函数指针的确定

【摘要】 很多教材上都有介绍到虚指针、虚函数与虚函数表,有的说类对象共享一个虚函数表,有的说,一个类对象拥有一个虚函数表;还有的说,无论用户声明了多少个类对象,但是,这个VTABLE虚函数表只有一个;也有的在说,每个具有虚函数的类的对象里面都有一个VPTR虚函数指针,这个指针指向VTABLE的首...

2018-06-14 14:30:05

阅读数 590

评论数 1

this指针到底存放到哪里

那么C++中类成员函数是如何知道哪个对象调用了它?并正确显示调用它的对象的数据呢? 当一个对象调用某成员函数时会隐式传入一个参数, 这个参数就是this指针。this指针中存放的就是这个对象的首地址。 这和C中通过向函数传递结构体变量的地址是不是很像?只是传参形式不一样罢了! 在C中我们是手工...

2018-06-13 15:09:55

阅读数 384

评论数 0

程序员面试金典习题集锦04

参考这个链接如何测量上下文切换时间 首先明白大的数字有什么特点,大的数字= 两个数字的和 - 小的数字,较大的数字。可以用绝对值的做法来做的,构造差值。 令result = (|a+b| + |a-b|) / 2; 那么,如果a > b ,则有: ...

2018-05-05 14:46:06

阅读数 245

评论数 0

程序员面试金典习题集锦03

最直接的方法就是递归,参考这个博客算出有几种括号的放法可使该表达式得出result值 参考这个链接给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,找出数组中的某个元素 这样的情况很有可能是两点: 1)使用C风格字符串,导致指针越界访问:严格检查使用c风格...

2018-05-05 10:21:35

阅读数 168

评论数 0

程序员面试金典习题集锦02

寻找二进制1的个数相等的最大和最小值 最笨的方法,就是暴力求解, 可以通过分析二进制字符串来实现寻找 直接异或,然后求解1的数量即可 我想到的最笨的方法就是直接相加,然后数组求和即可。 感觉应该是可以通过位运算来做的, 下面是智力题: ...

2018-05-04 20:39:21

阅读数 110

评论数 0

程序员面试金典习题集锦01

这道题很简单,但是不一定可以转换到这个思路上来。 如何使用一个数组实现三个栈? 还有一道关于MinStack的题,这也值得学习, leetcode 155. Min Stack 最小栈的实现 寻找二叉查找树的下一个结点: 寻找二叉树子树的存在与否? ...

2018-05-03 09:45:19

阅读数 125

评论数 0

汉诺塔问题

汉诺塔比较经典的实现是利用递归,但也可以利用堆栈。 题意理解:有A,B,C三个柱子,将A柱子上的N个盘子(从大到小排列)移到C柱子上,每次只允许移动一个盘子,并且保证每个柱子上的盘子的排列都是从大到小。 1、递归实现   假设只有一个盘子,那么只需实现 A->C 这个动...

2018-05-02 11:08:19

阅读数 128

评论数 0

队列的实现

就是考察如何实现一个队列 这道题考察的是细节 代码如下: #ifndef QUEUE_H #define QUEUE_H #include<cassert> #include<iostream> us...

2018-05-01 20:28:57

阅读数 80

评论数 0

动态求解中位数

题意是这样的,给你一个序列寻找中位数? 其实这个可以转化为TopK问题,但是假如这个数组不断的变化呢?这个时候可以考虑使用堆来解决。 这是一个很经典的问题,值得反思和学习。 参考这一道题leetcode 295. Find Median from Data Stream 双优先级队列 + 中...

2018-05-01 20:05:58

阅读数 205

评论数 0

字典树Trie树 + 深度优先遍历DFS

字典树是非常藏剑的数据结构,一定要学会使用。 这个时一定要学会手写的代码!!!!! C++版本如下: class TrieNode { public: // Initialize your data structure here. TrieNode *child[26]; ...

2018-05-01 19:30:26

阅读数 240

评论数 0

老鼠与毒药问题

大家应该都听说过这个老题目:有 1000 个一模一样的瓶子,其中有 999 瓶是普通的水,有一瓶是毒药。任何喝下毒药的生物都会在一星期之后死亡。现在,你只有 10 只小白鼠和一星期的时间,如何检验出哪个瓶子里有毒药? 这个问题的答案也堪称经典:把瓶子从 0 到 999 依次编号,然后全部转换为 ...

2018-04-05 13:47:36

阅读数 384

评论数 0

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