自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 资源 (6)
  • 收藏
  • 关注

原创 2018华为软件精英挑战赛总结及代码

2019复赛结束,成渝季军,深圳决赛见////////////////////////////////////////////////////////////////// 我是分割线君 ////////////////////////////////////////////////////////////////////////////////////////先贴上我们的...

2018-12-21 18:33:54 24752 38

原创 算法导论第三版第四章 最大子数组和的三种解法(暴力、教材分治法、线性解法)

1.暴力求解法该方法的思想非常简单,先找出从第1个元素开始的最大子数组,而后再从第2个元素开始找出从第2个元素开始的最大子数组,依次类推,比较得出最大的子数组。实现代码如下:/* 常规方法,时间复杂度O(n*n) 先从第一个元素开始向后累加, 每次累加后与之前的和比较,保留最大值, 再从第二个元素开始向后累加,以此类推。 */ int MaxSubSum1(int *ar

2017-12-02 11:24:05 1025

原创 算法导论第三版-思考题2-1

在合并排序中对小数组采用插入排序,代码如下:#include#includeusing namespace std;int* Insert_sort(int A[],int B[],int p,int q,int r);void Merge(int A[],int p,int q,int r);void Merge_sort(int A[],int p,int r,int k);v

2017-12-01 11:17:13 1773 1

原创 Windows网络编程入门:简单的客户端和服务器通信程序调试

昨日入手Windows网络编程经络这本书,第一章给了Echo客户端和服务器的简单通信实例程序。从小白到入门目测都是比较苦逼,居然想不到怎么来测试结果。什么同时运行啊、分别编译运行啊乱七八糟的想法就开始冒。最后还是解决了。1.运行“服务器.exe”文件2.在开始菜单中找到“命令提示符”,然后输入“cmd”进入命令行模式3.cd进入客户端.exe所在的debug文件夹4.输入“客户端.

2017-11-03 16:53:00 1738

原创 基于Qt的截图工具,实现截图后进行编辑

基于Qt的截图工具,采用了类似QQ截图的控制面板,先上效果图。 1.基本截图 2.画箭头 3.画矩形 4.画圆形 5.文字编辑 6.同时进行编辑 截图的思路主要是先得到当前的全屏图,然后沿着这个全屏图绘制一大圈路径,然后用暗色填充,即得到了背景大图。基本的截图操作就是根据鼠标初始按下的位置和最终松开的位置,根据这两个位置点,得到一个矩形,按照这个矩形绘制路径,...............

2017-10-14 13:42:10 3758 19

原创 C++中各种数据成员及成员函数的定义及使用

1.类是自定义的数据类型.类与应用程序不同,类的功能虽然独立,但不能独立启动,就象汽车零件那样. 2.Class 是一种数据类型, 其变量为对象.对象包含有member variables(成员变量)和member functions(成员函数).class Date{ int year, month, day;public: void set(int y,int m,int d);

2017-10-09 15:47:30 14020

转载 Qt5 MySql驱动问题(qt和mysql各种小白问题亲测解决,若有相关问题可留言交流)

QT5.5虽然自带mysql驱动,不再需要像QT4那样自己进行编译。但是QT对mysql总归不是那么友好,在连接过程中,遇到了一坨又一坨的问题,参考了一坨又一坨的资料,用了将近一整天的时间,终于搞定了。直接上干货: 照着QT官方文档提供的方法(按F1),进行mysql数据库的连接: [cpp] view plain copy QSqlDatabase db = QSqlDatabase::ad

2017-09-11 19:35:11 1706 2

原创 STL容器知识点总结(面试用)

vector:动态增加大小,每一次扩容都以原大小的两倍另外配置一块较大空间,然后将原内容拷贝过来,接着才开始在原内容之后构造新元素,并释放原vector。由上,所以对于vector的任何操作,一旦引起空间重新配置,指向原vector的所有迭代器就都失效了。list:插入和接合操作都不会造成原有的list迭代器失效,删除的话,只是影响被删除元素的迭代器失效;list是一个环状双向链表,只...

2020-02-09 14:12:18 517

原创 2019华为软件精英挑战赛总结

2019复赛结束,成渝季军,深圳决赛见(总结神马的回来写罒ω罒,加油加油ヾ(◍°∇°◍)ノ゙)

2019-04-15 10:48:46 759 2

原创 2019华为春季实习生招聘重庆站面经-C++软件

面试总共进行了一整天,被安排在了下午一点半场次,接近面试时间时先签到,然后投影上会显示待面试的名单。进去后先是技术面,一个大厅,和分配的面试官一对一,没有自我介绍,下载的华为简历递上去,问了下研究生数模国赛获奖比例,介绍项目,聊得也不是很深入,感觉面试官并不是一线做技术的,所以问的问题真是很少,,后面看到简历上有写有过IT软件开发经验,就让我打开GitHub链接,然后边看,边问了几个问题,数据库查...

2018-12-21 16:40:38 676

原创 2018年百度秋季招聘C++开发工程师笔试编程题一

题意为从一个乱序数组中,将其中的整数按照出现的频次多少来排列(并且出现几次就排列几个),比如输入为[1,2,1,2,3,3,1,6,4,4,4,4],那么输出就应该为[4,4,4,4,1,1,1,2,2,3,3,6],其中,如果某两个数字的出现频次相同,那么就按照输入用例中的原顺序排列。解题代码如下:int get_max_num_index(int* array, int length)...

2018-09-14 21:05:45 1535

原创 数组中找出出现次数超过一半的数

剑指offer中的题目,利用快速排序的partition函数进行解决,代码如下class Solution {public: int partition(vector<int> numbers,int p,int r) { //当遇到特殊的输入情况时候,要和面试官沟通,究竟应该返回值取到什么 int x=numbers[r]; ...

2018-07-19 21:37:11 520

原创 死锁面试题

(1)为什么会产生死锁?产生死锁有什么条件?由于系统中存在一些不可剥夺资源,而当两个或两个以上的进程占有自身资源,并请求对方资源时,会导致每个进程都无法向前推进,这就是死锁。死锁产生的必要条件有四个:互斥条件、不可剥夺条件、请求与保持条件、循环等待条件。互斥条件指进程要求分配的资源是排他性的,即最多只能同时给一个进程使用。不剥夺条件是指进程在使用资源完毕之前,资源不能被强行夺走。请求并保持条件是指...

2018-07-01 20:18:27 2118

原创 Linux文件软链接与硬链接的联系和区别

在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号inode 。软连接,其实就是新建立一个文件,这个文件就是专门用来指向别的文件的(那就和windows 下的快捷方式的那个文件有很接近的意味)。软链接产生的是一个新的文件,但这个文件的作用就是专门指向某个文件的,删了这个软连接文件,那就等于不需要这个连接,和原来的存在的实体原文件没有任何关系,但删除原来...

2018-06-30 16:23:23 243

原创 where 子句和having子句中的区别

1.where 不能放在GROUP BY 后面2.HAVING 是跟GROUP BY 连在一起用的,放在GROUP BY 后面,此时的作用相当于WHERE3.WHERE 后面的条件中不能有聚集函数,比如SUM(),AVG()等,而HAVING 可以 Where和Having都是对查询结果的一种筛选,说的书面点就是设定条件的语句。下面分别说明其用法和异同点。注:本文使用字段为oracle数据库中...

2018-06-14 19:53:03 2530

原创 #ifndef的用法

作用:防止头文件的重复包含和编译 定义  #ifndef x  #define x  ...  #endif  这是宏定义的一种,它可以根据是否已经定义了一个变量来进行分支选择,一般用于调试等等.实际上确切的说这应该是预处理功能中三种(宏定义,文件包含和条件编译)中的一种----条件编译。 C语言在对程序进行编译时,会先根据预处理命令进行“预处理”。C语言编译系统包括预处理,编译和链接等部分。  ...

2018-06-13 21:07:06 20551 2

原创 Gdb的用法

gdb 的用法在Linux应用程序开发中,最常用的调试器是gdb,它可以在程序中设置断点、查看变量值、一步一步跟踪程序的执行过程。利用调试器的这些功能可以方便地找出程序中存在的非语法错误。一、启动和退出gdbgdb调试的对象是可执行文件,而不是程序的源代码。如果要使一个可执行文件可以被gdb调试,那么在使用编译器gcc编译程序时需要加入-g选项。-g选项告诉gcc在编译程序时加入调试信息,这样才可...

2018-05-31 16:15:20 385

原创 求平方根(根号n)的两种算法——二分法和牛顿迭代

面试阿里口碑的时候遇到了这个问题,这里做个笔记1.二分法#define eps 0.00001float SqrtByDichotomy(float n){ if (n < 0) { return -1.0; } else { float low, up, mid, last; low = 0, up = (n>=1?n:1); mid = (low + ...

2018-03-23 15:13:51 12470

原创 是否能在构造函数,析构函数中抛出异常?

最近在工作中,接触到两次这个问题,一次是与Manager的每月一次交流中,Manager问我这个问题,当时回答得支支吾吾;另外一次是《Code View》学习小组会上,同事问到过这个问题。所以索性整理下来,以便自己明确。     首先是析构函数。一.  析构函数     参照《Effective C++》中条款08:别让异常逃离析构函数。   总结如下:     1. 不要在析构函数中抛出异常!虽...

2018-03-22 17:01:05 350

原创 c\c++中比较两个字符串或string对象是否相等

c\c++中比较两个字符串或string对象是否相等        在写程序的过程中,经常会遇到要比较两个字符串是否相等的情况。如果要比较的对象是char*字符串,则利用int strcmp(const char* s1,const char* s2)        当s1<s2时,返回为负数;        当s1==s2时,返回值= 0;        当s1>s2时,返回正数。 ...

2018-03-15 14:50:21 4371

原创 2018腾讯音乐暑期实习内推面试(一面)

3.22更,,,//华丽丽的吐槽分割线////////////////////////////////////////////////////////////////////////////////撸代码的过程中一个深圳定位的座机打过来,吓一激灵。。。问了不到二十分钟,,,问题列一下吧。。。“我先做个自我介绍吧”,,“不用了,这有简历,直接问问题了”。。快速排序介绍下,时...

2018-03-09 20:55:12 4335

原创 条件指示符:#ifndef

条件指示符#ifndef 的最主要目的是防止头文件的重复包含和编译。了解:条件编译当然也可以用条件语句来实现。 但是用条件语句将会对整个源程序进行编译,生成的目标代码程序很长,而采用条件编译,则根据条件只编译其中的程序段1或程序段2,生成的目标程序较短。如果条件选择的程序段很长,采用条件编译的方法是十分必要的。...

2018-03-08 09:59:07 306

原创 深入理解C++中public、protected及private用法

初学C++的朋友经常在类中看到public,protected,private以及它们在继承中表示的一些访问范围,很容易搞糊涂。今天本文就来十分分析一下C++中public、protected及private用法。相信对于大家深入掌握C++程序设计会有很大的帮助。这里我们首先要明白下面几点。1.类的一个特征就是封装,public和private作用就是实现这一目的。所以:用户代码(类外)可以访问p...

2018-03-02 09:58:04 1050

原创 HTTP协议超详细干货

HTTP简介HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于19...

2018-03-01 15:08:43 325

原创 排序算法总结

1.冒泡排序法void bubble_sort(int data[]){ for(int i=n-1;i>=0;--i) { int flag=0; for(int j=0;j<i;++j) { if(data[j+1]<data[j]) { int tmp; tmp=data[j]; data[j]=data[j+1]; ...

2018-03-01 11:10:46 162

原创 为什么Dijkstra算法不能处理带负权边的图

Dijkstra算法在运行过程中维持的关键信息是一组节点集合S,从源节点s到该集合中每个节点之间的最短路径已经被找到。算法重复从节点集合V-S中选择最短路径估计最小的节点u,将u加入到集合S,然后对所有从u出发的边进行松弛操作。当把一个节点选入集合S时,即意味着已经找到了从源点到这个点的最短路径,但若存在负权边,就与这个前提矛盾,可能会出现得出的距离加上负权后比已经得到S中的最短路径还短。(无法回...

2018-02-22 11:10:48 11848 3

原创 C++函数指针、函数对象与C++11 function对象对比分析

1.函数指针函数指针:是指向函数的指针变量,在C编译时,每一个函数都有一个入口地址,那么这个指向这个函数的函数指针便指向这个地址。函数指针主要由以下两方面的用途:调用函数和用作函数参数。函数指针的声明方法数据类型标志符 (指针变量名) (形参列表); 一般函数的声明为:  int func ( int x ); 而一个函数指针的声明方法为: int (*fu

2018-02-04 13:20:00 1817

转载 细说new与malloc的10点区别

前言几个星期前去面试C++研发的实习岗位,面试官问了个问题:new与malloc有什么区别?这是个老生常谈的问题。当时我回答new从自由存储区上分配内存,malloc从堆上分配内存;new/delete会调用构造函数/析构函数对对象进行初始化与销毁;operator new/delete可以进行重载;然后强行分析了一下自由存储区与堆的区别。回来后感觉这个问题其实回答得不

2018-01-31 15:33:50 151

原创 vector的resize函数和reserve函数

对于C++的vector容器模板类,存在size和capacity这样两个概念,可以分别通过vector的size()和capacity()方法获得该vector当前的size和capacity值。相应的,vector提供了两个方法来分别对size和capacity进行操作,它们就是resize方法和reserve方法。首先,对于size和capacity,这是两个比较容易混淆

2018-01-17 11:01:15 265

原创 C++(虚)继承类的内存占用大小

首先,平时所声明的类只是一种类型定义,它本身是没有大小可言的。 因此,如果用sizeof运算符对一个类型名操作,那得到的是具有该类型实体的大小。计算一个类对象的大小时的规律:1、空类、单一继承的空类、多重继承的空类所占空间大小为:1(字节,下同);2、一个类中,虚函数本身、成员函数(包括静态与非静态)和静态数据成员都是不占用类对象的存储空间的;3、因此一个对象的大小

2018-01-16 21:19:17 374

原创 LeetCode76 Minimum Window Substring(两种解法)

Given a string S and a string T, find the minimum window in S which will contain all the characters in T in complexity O(n).For example,S = "ADOBECODEBANC"T = "ABC"Minimum window is "BANC"

2018-01-13 16:05:31 573

原创 C++中虚析构函数的作用

我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明:        有下面的两个类:class ClxBase{public:    ClxBase() {};    virtual ~ClxBase() {};    virtual void DoSomething() { cout  "Do 

2017-12-22 15:27:10 143

原创 排序算法详解【归并排序-Merge_Sort】

核心思想:分治。主题流程:先将一个序列分成很多个不能再分割的子序列,将各个子序列分别排序后再将子序列合并。其实就是重复两个步骤:【1】分【2】合并。首先是第一个小问题,怎么分?比如说一个序列:12 ,23,1,44,233,10,9,8。我们先分成两段:12 ,23,1,44 和 233,10,9,8,发现还能再分成4段:12 ,23 和 1,44------233

2017-12-16 16:08:07 318

原创 二叉树的递归遍历(思路简单清晰)

预先建立用数组表示的二叉树的内容,然后建立二叉树,并进行前序、中序、后序遍历的操作,代码如下:#include#includeusing namespace std;class tree {public: int data; class tree *left, *right;};typedef class tree* btree;btree create_tree(btre

2017-12-14 11:31:19 1991

原创 算法导论第三版第十章 单链表实现栈和队列(思路简单清晰)

1.单链表实现栈虽然以数组结构来实现栈的好处是算法设计简单,但如果栈的大小可改变的话,由于数组的大小需事先声明,这时必须使用最大可能性的数组空间来考虑,这样会造成内存空间的浪费。而利用链表来实现栈的优点是随时可以动态改变链表长度。代码如下:#include#include#includeusing namespace std;class listnode {public: in

2017-12-09 10:35:29 438

原创 为什么函数声明和定义中的一维数组形参无须写明元素数目

因为函数并不为数组参数分配内存空间。形参只是一个指针,它指向的是已经在其他地方分配好内存的空间,这个事实解释了为什么数组形参可以与任何长度的数组匹配——它实际传递的只是指向数组第一个元素的指针。

2017-12-08 20:50:17 1173

原创 算法导论第三版第七章课后答案

7.1-1 参照图7-1的方法,说明PARTITION在数组A={13,9,9,5,12,8,7,4,21,2,6,11}上的操作过程。A={13,19,9,5,12,8,7,4,21,2,6,11}  ={13,19,9,5,12,8,7,4,21,2,6,11}  ={13,19,9,5,12,8,7,4,21,2,6,11}  ={9,19,13,5,12

2017-12-07 10:22:20 3300

原创 生成范围在[a,b]之中的随机整数

生成a到b之间的随机数==>int i = rand()%(b-a) + a;原理:对于任意整数a,b有:0 于是:0+a 即:a

2017-12-07 10:16:01 2682

原创 算法导论第三版第七章快速排序(一般和随机化版本)

快速排序是利用交换操作的排序,所以不是稳定排序法,最快及平均时间复杂度为O(nlogn),最坏为O(n*n)。步骤:(1)分解:数组A[p...r]被划分为两个子数组A[p...q-1]和A[q+1...r],使得A[p...q-1]中的每一个元素都小于等于A[q],而A[q]也小于等于A[q+1...r]中的每个元素。(2)解决:通过递归调用快速排序,对于子数组A[p...q-1]和

2017-12-07 10:07:47 582

原创 堆和栈的区别

一、预备知识—程序的内存分配    一个由C/C++编译的程序占用的内存分为以下几个部分    1、栈区(stack)—   由编译器自动分配释放   ,存放函数的参数值,局部变量的值等。其    操作方式类似于数据结构中的栈。    2、堆区(heap)   —   一般由程序员分配释放,   若程序员不释放,程序结束时可能由OS回    收   。注意它与数据结构中的堆是两

2017-12-05 20:16:13 134

2018华为软件精英挑战赛复赛代码 by java()

2018华为软件精英挑战赛,成渝赛区无力吐槽的典哥(初赛23名,复赛14名).代码是复赛的,岭回归+均值+去噪预测结合比例回溯放置,复赛练习稳定得分81.有兴趣的可以私聊交流经验

2018-05-03

2018华为软件精英挑战赛初赛代码85分版本基于C

2018华为软件精英挑战赛,成渝赛区无力吐槽的典哥(初赛23名,复赛14名).代码是初赛的,岭回归预测加贪心放置,有兴趣的可以私聊交流经验

2018-05-03

GIF生成器(将桌面演示保存为GIF文件使用)

文件为GIF生成器(能够将桌面演示保存为GIF文件使用)

2017-10-22

基于qt的截图工具,实现截图后进行多种编辑,采用仿QQ截图控制面板

基于qt的截图工具实现了截图后进行多种编辑,采用仿QQ截图控制面板,已经进行打包,若有兴趣,可在博客中留言留下邮箱,可将主要代码发送分享。

2017-10-14

算法导论第三版答案(亲测完整版)

网上的 算法导论(第三版)答案都不完整,这个是完整版答案,分每章一个单独pdf格式的文件,易于查阅。有需要的请自行下载。

2017-10-13

四阶混沌系统的代码资源

MATLAB仿真超混沌系统,解四阶微分方程

2015-01-07

空空如也

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

TA关注的人

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