- 博客(111)
- 收藏
- 关注
原创 Python pandas read_excel to_excel 按行列处理数据
Python pandas read_excel to_excel 按行列处理数据
2022-07-18 21:06:44 891 1
原创 你需要吃苦吗?
芸芸众生,百分之九十九的人都是普通人,都需要通过努力学习、工作来改变自己,养活自己。哪怕是父母已经近五十岁了,也还在努力的工作,他们为了什么?很多年轻人盲目自大,自信,实际上没有吃过生活的苦头,感觉一切都很顺利,都很自然。殊不知是因为父母给了我们良好的成长环境而已。以前的生活过的太漫不经心了,过的太舒服了。没有为未来做过打算。这只是图短暂的快乐,几年后,当别人事业有成家庭和睦的时候,我却只能紧紧握短暂的快乐,就好像被世界抛弃了一样,仅仅做个同龄人,就需要不断的努力,因为世界在进步,每个人都在努力。
2020-11-16 15:29:01 180 1
原创 百度质量部测试开发工程师二面面筋
#时间1h26min1、自我介绍2、聊项目,做了什么(详细的),在项目里面的角色3、项目里面觉得比较难的点,怎么解决的4、算法题,C++实现爬虫,给定一个url,深度遍历5层,返回带有image字样的url5、SQL语句,有没有做过前段,数据库怎么使用的6、设计题 从各个维度考虑怎么提高用户的查询效率7、反问ps:百度面试官真的很有耐心,每次都是加班面试,态度也超级好,不会了还给你指点,更多关注的是基础知识的掌握,和自身的扩展性,能否想到更好方法...
2020-10-13 21:36:26 380
转载 什么时候需要用到初始化列表
初始化列表用于对类的数据成员进行初始化。成员列表在构造函数中进行初始化,跟在构造函数的冒号后面。参考下面例子:[cpp] view plain copy print?#include<iostream> class Point { private: int x; int y; public: Point(int i = 0, int j = 0):x(i
2017-09-11 10:40:06 2515 1
转载 程序设计原则
程序设计原则(总结) 结构化程序设计的主要原则1、自顶向下 程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。2、逐步求精 对复杂问题,应设计一些子目标作为过渡,逐步细化。3、模块化 一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目
2017-09-09 22:39:49 859
原创 广联达线下笔试题
1:给一个词典,找出其中所有最长的单词。 样例 在词典 { “dog”, “google”, “facebook”, “internationalization”, “blabla” } 中, 最长的单词集合为 [“internationalization”] 在词典 { “like”, “love”, “hate”, “yes”
2017-09-07 01:55:39 2852
转载 MD5算法原理
MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2、MD3和MD4发展而来。MD5算法的使用不需要支付任何版权费用。 MD5功能: 输入任意长度的信息,经过处理,输出为128位的信息(数字指纹); 不同的输入得到的不同的结果(唯一性); 根据128位的输出结果不可能反推出输入的信息(不可逆); MD5
2017-09-02 20:19:18 483
原创 Redis与Memcached的区别
1、 Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。 2 、Redis支持数据的备份,即master-slave模式的数据备份。 3 、Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。 在Redis中,并不是所有的数据都一直存储在内存中的。这是和Memcached相比一个最大的区别(我个人是这么认为
2017-09-02 14:29:50 362
转载 Redis原理
数据类型Redis最为常用的数据类型主要有以下五种:StringHashListSetSorted set在具体描述这几种数据类型之前,我们先通过一张图了解下Redis内部内存管理中是如何描述这些不同数据类型的: 650) this.width=650;” src=”http://s3.51cto.com/wyfs02/M01/58/5C/wKiom1SvUaiAGz1-AAD
2017-09-02 11:19:43 386
原创 常见的STL容器及其使用场景
STL的容器代表着C++的数据结构STL的容器可以分为以下几个大类:一:序列容器, 有vector, list, deque, string.二 : 关联容器, 有set, multiset, map,multimap,( hash_set, hash_map, hash_multiset, hash_multimap)
2017-08-31 12:01:26 1751
转载 总结http服务器框架
HTTP又叫做超文本传输协议,现如今用的最多的版本是1.1版本。HTTP有如下的特点: 支持客户/服务器模式(C/S或B/S) 简单快速:基于请求和响应,请求只需传送请求方法和请求路径 灵活:HTTP允许传送人任意类型的数据对象。 无连接:这个无连接说的是应用层,应用层无连接,下层使用TCP依然是面向连接的,无连接的含义是限制在每一次连接只处理一个请求,服务器处理完客
2017-08-29 22:56:43 5868
转载 C++关键字mutable和volatile
mutable和volatile 很少遇到这两个关键字,学嵌入式估计知道后者,深入研究 C++ 的估计知道前者。 (1)mutable 在 C++ 中,mutable 是为了突破 const 的限制而设置的。被 mutable 修饰的变量,将永远处于可变的状态,即使在一个 const 函数中,甚至结构体变量或者类对象为 const,其 mutable 成员也可以被修
2017-08-29 16:56:26 369
原创 综合面试题(下)
10.C++中包含哪几种强制类型转换?他们有什么区别和联系 reinterpret_cast: 转换一个指针为其它类型的指针。它也允许从一个指针转换为整数类型,反之亦 然. 这个操作符能够在非相关的类型之间转换. 操作结果只是简单的从一个指针到别的指针的值的 二进制拷贝. 在类型之间指向的内容不做任何类型的检查和转换? class A{}; class B{}; A* a = new A;B*
2017-08-27 18:19:25 235
原创 综合面试题整理(上)
1、实现一个单利模式,要求线程安全//单例模式:一般用于日志模块,构造一个日志模块的全局变量在任何地方都可以使用//保证一个类只有一个实例,并提供一个访问它的全局访问点(定义一个static函数)//解决项目中全局变量会造成的不安全问题,不符合面向对象的封装原则问题//考虑线程安全问题,性能问题#include <iostream>using namespace std;class Si
2017-08-27 16:58:52 658
原创 复习RAII(智能指针)
一、什么是RAIIRAII是Resource Acquisition Is Initialization的简称,是C++语言的一种管理资源、避免泄漏的惯用法。RAII又叫做资源分配即初始化,即:定义一个类来封装资源的分配和释放,在构造函数完成资源的分配和初始化,在析构函数完成资源的清理,可以保证资源的正确初始化和释放。二、为什么要使用在计算机系统中,资源是数量有限且对系统正常运行具有一定作用的
2017-08-27 12:14:13 818
原创 浅析栈帧
一、 关于栈帧栈帧叫过程活动记录,是编译器用来实现过程/函数调用的一种数据结构。 栈帧就是存储在用户栈上(内核栈)的每一次函数调用涉及的相关信息的记录单元。二、 栈(用户栈和内核栈) 栈作为一种特殊的数据结构而存在(和“队列”相反的记录结构和操作规则),是一种只能在一端进行插入和删除操作的特殊线性表。 它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数
2017-08-27 09:07:38 410
转载 explicit关键字
explicit关键字用来修饰类的构造函数,表明构造函数是显示的,相对的是implicit关键字。首先这个关键字只能用在类内部的构造函数声明上,而不能用在类外部的函数定义上,它的作用是不能进行隐式转换。复制代码 代码如下: class gxgExplicit //没有关键字explicit的类 { public: int _size; gxg
2017-08-27 09:04:02 230
原创 复习继承和多态
C++面向对象程序设计的核心思想是封装(数据抽象)、继承和多态(动态绑定)。通过数据抽象,我们可以将类的接口与实现分离,可以将数据和方法封装在一起;使用继承,可以定义相似的类型并对其相似关系建模,以及虚函数的重写;使用动态绑定,可以在一定程度上忽略相似类型的区别,而用同一方式使用它们的对象;继承和多态是为了代码的复用,和形成多种形态,以实现多种功能。一、继承1、概念:为了代码的重用,保留基类的原
2017-08-27 01:38:02 320
原创 海量数据处理
1.给一个超过100G大小的log file, log中存着IP地址, 设计算法找到出现次数最多的IP地址?! 思路:要进行哈希切分编号,将100G 文件分成100份,将每个IP映射到相应的文件中,再用map统计每个文件中出现次数最多的IP,再讲这100份出现次数最多的IP放到hashtable中进行比较找出最大值。2.与上题条件相同,如何找到top K的IP?如何直接用Linux系统命令实现?!
2017-08-26 21:51:20 284
原创 排序基础--(插入排序、交换排序、选择排序、归并排序)
插入排序 一、直接插入排序 思路:选择一个有序区间,然后依次拿出后面的数往有序区间里面插入 第一步:第一个数即为一个有序区间 第二步:取出无序区间的第一个数,从有序区间最后一个数开始依次向前比较,判断大小 第三步:为有序区间的数挪出合适的位置并放入,直到无序区间数据取完,整个序列排序完成
2017-08-24 23:41:41 546
转载 分治算法
分治算法一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)……
2017-08-23 23:52:25 462
转载 使用gdb调试多线程多进程程序
GDB的基本介绍GDB是GUN开源组织发布的一个强大的UNIX下的程序调试工具。或许,平时大家更加习惯图形界面的调试,比如VS上的IDE调试;但是如果我们在UNIX或Linux下做软件,我们呢就更加需要熟练GDB这个调试工具。
2017-08-23 00:02:01 751
转载 TCP的三次握手与四次挥手
转载自:[http://blog.csdn.net/whuslei/article/details/6667471]建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。
2017-08-22 17:24:35 185
原创 Morris神级遍历二叉树,时间复杂度为O(1)
Morris算法介绍Morris算法在遍历的时候避免使用了栈结构,而是让下层到上层有指针,具体是通过底层节点指向NULL的空闲指针返回上层的某个节点,从而完成下层到上层的移动。我们知道二叉树有很多空闲的指针,比如某个人节点没有右孩子,我们称这种情况为空闲状态,Morris算法的遍历就是利用了这些 空闲的指针!
2017-08-22 14:44:11 9278 8
原创 常见的TCP定时器
TCP使用四种定时器(Timer,也称为“计时器”): 重传计时器:Retransmission Timer 坚持计时器:Persistent Timer 保活计时器:Keeplive Timer 时间等待计时器:Time_Wait Timer。
2017-08-22 11:31:59 248
原创 浅析TCP协议中的URG与PSH
TCP报文格式 URG和PSH都属于TCP包头中的标志位,URG和PSH为 1 时,都表示当前有紧急数据。不同的是对紧急数据的处理方式不同。 URG:为1时,表明紧急指针字段有效,它告诉系统此报文段中有紧急数据,应尽快传递,相当于高优先级,不再需要在接收队列中排队。
2017-08-22 11:22:23 795
转载 浅析NAT技术与代理服务器
一、NAT技术介绍1.概念NAT英文全称是“Network Address Translation”,中文意思是“网络地址转换”,它是一个IETF(Internet Engineering Task Force, Internet工程任务组)标准,允许一个整体机构以一个公用IP(Internet Protocol)地址出现在Internet上。
2017-08-22 10:42:46 474
原创 浅析arp协议
一、前言1. 什么是ARP? ARP (Address Resolution Protocol) 是个地址解析协议。最直白的说法是:在IP以太网中,当一个上层协议要发包时,有了该节点的IP地址,ARP就能提供该节点的MAC地址。
2017-08-22 10:18:49 430
原创 守护进程
一,守护进程概述 Linux Daemon(守护进程)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。Linux系统的大多数服务器就是通过守护进程实现的
2017-08-21 22:41:48 230
原创 浅析linux下的crond和crontab
一、什么是crond? crond是Linux系统用来定期执行命令或指定程序的服务的一种服务或软件。一般情况下当我们安装完成Linux操作系统之后,默认便会启动Crond任务调用服务。Crond服务会定期(默认一分钟检查一次)检查系统中是否有要执行的任务工作。如果有,便根据其预先设定的定时任务规则自动执行该定时任务工作。这个Crond定时服务就像我们的闹钟一样。
2017-08-21 15:42:57 362
原创 父进程等待子进程的异步版本
前言 首先,打开linux虚拟机或者系统的时候,系统自己建立一个init进程,这是Linux系统的基础进程,然后init进程再根据一些配置文件决定创建哪些进程,或者我们在终端自己创建一个新进程的时候,如果你有时间,你可以一直追查这个进程的祖祖辈辈,你会发现,他们都指向一个进程,那就是init进程。所以,可以这么说,Linux系统服务中,所有进程都是init的子孙进程。所以,进程的创建是通过创建子进
2017-08-21 14:08:28 311
原创 Linux下生成随机数和随机字符串
1、生成长度为32的随机字符串head -c 32 /dev/random | base64该方式产生的随机数效果比较好,但是,当不能产生随机数时,它会阻塞在那里,也就是为阻塞程序的执行 2、用/dev/urandom文件产生head -c 32 /dev/random | base64该方式产生的随机数随机效果一般是,但是产生速度快,不会阻塞程序的运行 ………………………………………………………………
2017-08-21 10:29:39 22257
原创 动态规划算法
一、什么是动态规划 动态规划漫画版 动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划
2017-08-20 14:26:38 265 1
原创 编写一个简单的进程池
池的概念 由于服务器的硬件资源“充裕”,那么提高服务器性能的一个很直接的方法就是以空间换时间,即“浪费”服务器的硬件资源,以换取其运行效率。这就是池的概念。池是一组资源的集合,这组资源在服务器启动之初就完全被创建并初始化,这称为静态资源分配。当服务器进入正是运行阶段,即开始处理客户请求的时候,如果它需要相关的资源,就可以直接从池中获取,无需动态分配。
2017-08-18 20:34:03 594
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人