JackZhangNJU
码龄8年
  • 420,976
    被访问
  • 716
    原创
  • 862,274
    排名
  • 96
    粉丝
关注
提问 私信

个人简介:未来的路还很长

  • 加入CSDN时间: 2014-10-03
博客简介:

JackZhangNJU的专栏

博客描述:
编程菜鸟,请多多指教!
查看详细资料
个人成就
  • 获得63次点赞
  • 内容获得32次评论
  • 获得186次收藏
创作历程
  • 3篇
    2019年
  • 110篇
    2018年
  • 634篇
    2017年
TA的专栏
  • leetcode For Java
    502篇
  • C++ 学习笔记
    74篇
  • Java 学习笔记
    19篇
  • DFS深度优先搜索
    171篇
  • 需要好好想一下的题目
    355篇
  • 24种设计模式(以Java为例)
    25篇
  • DP动态规划
    111篇
  • CUDA
    12篇
  • 双指针问题
    53篇
  • 关于软工人的未来发展
    1篇
  • leetcode For C++
    551篇
  • 位运算
    21篇
  • 2018校园招聘
    7篇
  • 操作系统
    17篇
  • 数据结构经典算法
    29篇
  • 剑指offer读书笔记
    9篇
  • 程序员面试金典读书笔记
    4篇
  • 杂记
    1篇
  • 计算机网络
    2篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

#pragma once 和 #ifndef 的联系和区别?

组织头文件的时候,编译时经常会遇到重复定义的error,这个问题的根源在于一个文件被include多次,如何解决这个问题呢?有下面两种方式1 #ifndef方式比如: #ifndef __SOMEFILE_H__ #define __SOMEFILE_H__ ... ... // 一些声明语句 #endif2 #pragma once方式比如:#pragma on...
原创
发布博客 2019.08.04 ·
188 阅读 ·
0 点赞 ·
0 评论

select、poll、epoll等

POSIX概述 同步IO、异步IO、阻塞IO、非阻塞IO,这几个词常见于各种各样的与网络相关的文章之中,往往不同上下文中它们的意思是不一样的,以致于我在很长一段时间对此感到困惑,所以想写一篇文章整理一下。 POSIX(可移植操作系统接口)把同步IO操作定义为导致进程阻塞直到IO完成的操作,反之则是异步IO。 按POSIX的描述似乎把同步和阻塞划等号,异步和非阻塞划等号...
原创
发布博客 2019.07.21 ·
198 阅读 ·
0 点赞 ·
0 评论

Socket编程学习总结

读书的时候,每当遇到需要网路通信的时候,总是随便百度一下,然后就随便写写就过去了,对于socket本身并没有太深的认识。因为目前的工作中用到了网络通信,并且在过去写的socket通信一般都是阻塞的,这在项目中是无法忍受的。 因此,本文主要参考网上的多篇博客,然后系统的总结了socket的概念,并给出了编程实例,不喜勿喷。网络通信概念 网络层的ip地址可以唯一标...
原创
发布博客 2019.07.20 ·
535 阅读 ·
0 点赞 ·
0 评论

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

首先把数据成员按类型分类 1。内置数据类型,复合类型(指针,引用) 2。用户定义类型(类类型)分情况说明: 对于类型1,在成员初始化列表和构造函数体内进行,在性能和结果上都是一样的 对于类型2,结果上相同,但是性能上存在很大的差别因为类类型的数据成员对象在进入函数体是已经构造完成,也就是说在成员初始化列表处进行构造对象的工作,这是调用一个构造函数,在进入函数体之后,进行的是 对已经...
原创
发布博客 2018.09.10 ·
2729 阅读 ·
4 点赞 ·
0 评论

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

写的方法struct cmp { bool operator()(pair<int, int>& a, pair<int, int>& b) { if (a.first == b.first) return a.sec
原创
发布博客 2018.09.08 ·
1497 阅读 ·
0 点赞 ·
0 评论

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

https://blog.csdn.net/nie19940803/article/details/76641498https://www.cnblogs.com/yushuo1990/p/6007068.htmlhttps://blog.csdn.net/gscaiyucheng/article/details/17113073
原创
发布博客 2018.09.05 ·
318 阅读 ·
0 点赞 ·
0 评论

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

https://blog.csdn.net/owen7500/article/details/52432970 https://www.cnblogs.com/haoyuanyuan/archive/2013/04/25/3041250.html
原创
发布博客 2018.09.05 ·
562 阅读 ·
0 点赞 ·
0 评论

PDD笔试题:最小字符串

直接递归即可需要注意的地方是set是有序的,所以DFS得到第一个结果one就是最终答案代码如下:#include <iostream>#include <vector>#include <map>#include <set>#include <queue>#
原创
发布博客 2018.08.30 ·
2495 阅读 ·
0 点赞 ·
0 评论

一般递归与尾递归

参考这个博客一般递归与尾递归
原创
发布博客 2018.08.15 ·
234 阅读 ·
0 点赞 ·
0 评论

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

参考这个博客这里写链接内容 思路: 每次数据项被查询到时,都将此数据项移动到链表头部(O(1)的时间复杂度) 这样,在进行过多次查找操作后,最近被使用过的内容就向链表的头移动,而没有被使用的内容就向链表的后面移动。 当需要替换时,链表最后的位置就是最近最少被使用的数据项,我们只需要将最新的数据项放在链表头部,当Cache满时,淘汰链表最后的位置就是了。 还有这个博客简单的LRU Ca...
原创
发布博客 2018.08.09 ·
620 阅读 ·
0 点赞 ·
0 评论

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

详情参考这个博客,写的很清楚,这个和进程里面的fork,exec很类似
原创
发布博客 2018.08.06 ·
810 阅读 ·
0 点赞 ·
0 评论

0交换排序

长度为n的数组乱序存放着0至n-1. 现在只能进行0与其他数的交换,完成以下函数#include <iostream>#include <vector>#include <map>#include <unordered_map>#include <set>#include &a
原创
发布博客 2018.07.01 ·
1629 阅读 ·
0 点赞 ·
0 评论

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

【摘要】很多教材上都有介绍到虚指针、虚函数与虚函数表,有的说类对象共享一个虚函数表,有的说,一个类对象拥有一个虚函数表;还有的说,无论用户声明了多少个类对象,但是,这个VTABLE虚函数表只有一个;也有的在说,每个具有虚函数的类的对象里面都有一个VPTR虚函数指针,这个指针指向VTABLE的首地址,每个类的对象都有这么一种指针。今天,我们就来解决这个问题,同一个类的不同对象,是不是拥有“相同”...
原创
发布博客 2018.06.14 ·
2239 阅读 ·
2 点赞 ·
1 评论

this指针到底存放到哪里

那么C++中类成员函数是如何知道哪个对象调用了它?并正确显示调用它的对象的数据呢?当一个对象调用某成员函数时会隐式传入一个参数, 这个参数就是this指针。this指针中存放的就是这个对象的首地址。 这和C中通过向函数传递结构体变量的地址是不是很像?只是传参形式不一样罢了! 在C中我们是手工把结构体变量和函数关联起来的,而C++则是编译器帮我们把类数据和成员函数关联起来的并通过名称粉碎和编译...
原创
发布博客 2018.06.13 ·
2681 阅读 ·
5 点赞 ·
0 评论

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

参考这个链接如何测量上下文切换时间 首先明白大的数字有什么特点,大的数字= 两个数字的和 - 小的数字,较大的数字。可以用绝对值的做法来做的,构造差值。 令result = (|a+b| + |a-b|) / 2; 那么,如果a > b ,则有: result = a;符合要求 这道题需要注意的地方就是全部是负数的情况 遇到这种题就要...
原创
发布博客 2018.05.05 ·
351 阅读 ·
0 点赞 ·
0 评论

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

最直接的方法就是递归,参考这个博客算出有几种括号的放法可使该表达式得出result值 参考这个链接给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,找出数组中的某个元素 这样的情况很有可能是两点: 1)使用C风格字符串,导致指针越界访问:严格检查使用c风格字符串 2)使用随机数,导致不同情况下的bug不一样:在log中打印seed,然后复现bug再去排除...
原创
发布博客 2018.05.05 ·
261 阅读 ·
0 点赞 ·
0 评论

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

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

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

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

汉诺塔问题

汉诺塔比较经典的实现是利用递归,但也可以利用堆栈。题意理解:有A,B,C三个柱子,将A柱子上的N个盘子(从大到小排列)移到C柱子上,每次只允许移动一个盘子,并且保证每个柱子上的盘子的排列都是从大到小。1、递归实现  假设只有一个盘子,那么只需实现 A->C 这个动作;  如果有两个盘子,那么需要  (1)A->B;  (2)A->C;  (3)B-&g...
原创
发布博客 2018.05.02 ·
246 阅读 ·
0 点赞 ·
0 评论

队列的实现

就是考察如何实现一个队列这道题考察的是细节代码如下:#ifndef QUEUE_H#define QUEUE_H#include<cassert>#include<iostream>using namespace std;template<typename T>class Queue{public: Queue(int m...
原创
发布博客 2018.05.01 ·
195 阅读 ·
0 点赞 ·
0 评论
加载更多