自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Vincent的专栏

天道酬勤 水滴石穿

  • 博客(360)
  • 资源 (1)
  • 收藏
  • 关注

原创 【动态规划】【leetcode】64. Minimum Path Sum

1. 题目描述Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.Note: You can only move either down or rig...

2019-02-01 19:14:51 203

原创 【动态规划】【Leetcode】63. Unique Paths II

1.题目描述A robot is located at the top-left corner of a m x n grid (marked ‘Start’ in the diagram below).The robot can only move either down or right at any point in time. The robot is trying to reach ...

2019-02-01 18:03:51 214

原创 【动态规划】矩形覆盖

1. 题目描述假设我们可以用如图1所示21的小矩形横着或者竖着去覆盖更大的矩形,请问用8个21的小矩形去无重复的覆盖一个2*8的大矩形。总共有多少种方法。2.算法分析这道题出自《剑指offer》,也是一道考察动态规划的基础题。把覆盖28矩形的覆盖方法总数记为f(8).用第一个矩形去覆盖大矩形时,有两种选择,横放或者竖放。竖放时,右边有27的区域尚未被覆盖,那么剩下区域覆盖方法的总数为f(7...

2019-01-30 20:36:03 1311

原创 【回溯法】列举一个n维数组中所有元素的索引值

之前面试遇到一道算法题,题目描述如下:1. 题目描述已知一个n维数组,其维度为i1, i1,… ,in,其中in为正整数, 用C语言表示为:dimensions = {i1, i2, …, in}, 编写函数,列举出数组中所有元素的索引值。例1:input = {2,3}output = { {1,1}, {1,2}, {1,3}, {2,1}, {2,2}, {2,3}}...

2019-01-30 19:49:33 677

原创 网络字节序和主机字节序

现代CPU的累加器一次至少能装载4字节的数据。一个int类型占据4个字节(假设在32位系统上),那么这4字节在内存中排列的顺序将影响到它被累加器装载成的整数的值。这既是字节序的问题。字节序分为大端字节序和小端字节序。假设有int a = 0x11223344大端序:整数高位字节在低地址内存,整数低位字节在高位地址。小端序:整数高位字节在高地址内存,整数低位字节在低位地址。一般来说,...

2019-01-11 14:18:44 980

原创 区分同步、异步,阻塞和非阻塞

网上关于同步、异步,阻塞和非阻塞的文章可谓数不胜数,但是很可惜的是,很多文章都没有说清楚这四个词之间到底有啥区别和联系。经常有人把epoll、select等IO复用当成是异步IO。这篇文章希望能对这几个词做一下区分。首先要明确一下一个IO操作可以分为几个阶段,IO操作一般都要经过系统内核。一个IO操作可以分为两个阶段等待内核将数据准备好将数据从内核拷贝到用户内存空间区分同步还是异步只看...

2019-01-07 23:24:15 739

原创 python实例解释五种IO模型(3)--------IO多路复用

0.IO多路复用IO多路复用的模型如上图所示,有了IO多路复用,我们就可以调用select或者poll,用户程序阻塞在这两个系统调用的某一个之上,而不是阻塞在真正的IO系统调用之上。IO多路复用的优点在于,他可以同时等待多个描述符就绪。下面看一个例子1. select实例服务端程序如下:import selectimport socketimport times = socket....

2019-01-06 12:17:55 340

原创 python实例解释五种IO模型(2)--------非阻塞式IO

0. 非阻塞式IO前面一篇博文解释了什么是阻塞式IO,你一定会发现这种IO存在的问题。进程把一个套接字设置成阻塞式,在等待IO操作完成时,本进程就会被投入睡眠,只能干等IO操作完成并返回。如果希望内核在进行IO操作的过程中本进程继续运行,那么就需要用非阻塞式IO。进程把一个套接字设置成非阻塞式,就是在通知内核,在你进行IO操作的过程中,不要把进程投入睡眠,IO操作没完成,返回一个错误即可。非阻...

2019-01-06 11:17:19 416

原创 python实例解释五种IO模型(1)--------阻塞式IO

我们都知道,unix下可用的IO模型有五种,分别是阻塞式IO非阻塞式IOI/O复用(select和epoll)信号驱动式I/O异步IO下面通过一个个实例来解释各种IO之间的区别1.阻塞式IO阻塞式IO是最常见的一种IO模型,默认情况下所有的套接字都是阻塞的。阻塞式IO可以用下面这张图来描述应用程序调用一个系统调用向内核请求数据,此时如果数据没有准备好,那么进程在此阻塞,切换...

2019-01-04 19:52:55 873

原创 c++智能指针

0.使用普通指针带来的问题c++ 的内存管理是一个让人非常头疼的问题,当我们写一个new语句时,如果没有写响应的delete语句,就会造成内存泄漏的问题。或者就算我们写了delete语句,有可能程序还没有执行到delete语句就返回或者跳转到其他的语句,一样会造成内存泄漏。看下面这个例子void test(){ double *p = new double; *p = 5.5; ret...

2019-01-03 18:08:02 360

原创 构造函数、析构函数和虚函数的关系

首先明确两点构造函数不可能定义为虚函数虚函数的目的是通过父类引用或者指针调用子类的成员函数。而构造函数的目的是创建对象。创建子类对象时,将调用子类的构造函数,而不是父类的构造函数。子类的构造函数将使用父类的一个构造函数。这种顺序不同于继承机制。因此,子类不继承父类的构造函数,所以将类的构造函数声明为虚函数没有意义。这个如果不能理解,记住就好了。父类的析构函数应该是虚函数关于第二点,举个...

2019-01-01 22:42:30 1863

原创 虚函数表分析

0.多态C++几个的抽象、封装、继承和多态几大特性当中,多态是最为重要的一个。所谓多态(这里指狭义的多态)就是父类指针或引用指向子类对象,然后可以通过父类指针或引用调用子类的成员函数。 刚开始学习多态的时候,觉得多态非常神奇,同时也非常费解。后来了解到c++的多态是通过虚函数表来实现的,但是一直也没有做一个系统的总结。今天写几个例子梳理一下c++是怎么通过虚函数表来实现多态的。1. 单继承虚函...

2019-01-01 14:49:52 513

原创 赋值运算符重载

0.对象赋值时发生了什么C语言中允许把一个结构体赋值给另外一个相同类型的结构体,C++允许把一个对象赋值给另一个同类的对象。这是通过自动为类重载赋值运算符实现的。这种赋值运算符重载函数yuan原型如下。Class_name & Class_name::operator=(const Class_name &);它接受一个指向对象的常引用,并返回一个指向类对象的引用。那么c+...

2019-01-01 02:03:33 563

原创 拷贝构造函数总结

0. 什么是拷贝构造函数拷贝构造函数用于将一个对象复制到一个新创建的对象中。也就是说,它用在初始化过程中,而不是常规的赋值操作中。类的拷贝构造函数的原型如下:Class_name(const Class_name&);这个函数接受一个指向类对象的常量引用作为参数。如果没有定义,c++会提供一个默认的拷贝构造函数,不过这个默认的拷贝构造函数有一些坑需要注意(见后面的例子)。编译器新建...

2019-01-01 01:15:51 655

原创 C语言单元测试框架unit的使用

针对C语言的测试框架相比其他语言要少一些,本文简单介绍一下Cunit框架的基本使用方法,权当备忘吧。Cunit的组织框架如下图所示:将单个测试用例打包到一个suite中,这些suite在Registry中注册。registry中的所有suite/tests可以使用单个函数调用运行,也可以运行选定的套件或测试。下面看一个例子首先我们新建文件,写一个待测试函数,这里以一个字符串转换数字函数为例,...

2018-11-12 17:26:30 12192

原创 查看系统头文件包含路径

cpp -v命令可以查看头文件包含路径,记录一下。linux下执行结果:Using built-in specs.COLLECT_GCC=cppTarget: x86_64-unknown-linux-gnuConfigured with: ../configure --enable-checking=release --enable-languages=c,c++ --disable-...

2018-11-09 10:55:59 2298

原创 python实现一个简单的http服务器

1. HTTP服务器的实现实现一个http服务器说白了就是实现一个监听程序,当客户端发来对应的http请求时,能够解析请求,并且返回对应的资源给客户端,客户端解析显示到浏览器上。这里我使用python实现一个最简单的http服务器。1.1初始化定义一个初始化方法,创建套接字,绑定地址,监听端口,cnt用来统计客户端请求数量。def init(self): self.serv...

2018-11-02 17:20:18 1594 1

原创 进程通信(1)管道

进程之间通信的方式有很多种,主要包括管道命名管道信号消息队列共享内存信号量套接字其中,管道是最早的一种进程间通信机制,主要适用于具有亲缘关系之间的进程间通信,比如,父进程与子进程之间,或者同一个父进程的两个子进程之间。同时,管道是一中半双工的通信,数据只能单向流动,从一段写入,另外一段读出。下面通过几个例子来看一下管道如何使用。1. 函数原型 #include <un...

2018-10-31 14:35:42 334

原创 词频分析--字典树的应用

词频分析–字典树的应用字典树又称单词查找树,Trie树,前缀树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。下面我们来用python应用字典树实现词频分析首先我们定义一个节点,节点包括三部分内容,1是字符,2是该字...

2018-10-27 00:10:37 1072

原创 QT实现保存windows10锁屏壁纸

Windows聚焦是微软在Win10系统中添加的非常好用的功能,把这个功能打开,开启电脑或者锁屏的时候就可以看到一张新的锁屏壁纸。有时候碰到好看又非常喜欢的壁纸,却又不知道如何保存。事实上,windows 10聚焦的壁纸实际上是保存在下面这个目录下:%localappdata\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2tx...

2018-10-23 13:42:13 756

原创 qt记事本(精简版)

昨天在家闲的无聊,折腾了一下qt,发现qt的信号与槽机制真的蛮好,简单好用,省了很多事情,于是用qt模仿windows 记事本实现了一个精简版的记事本,感觉效果还不错。1. 功能点列表写代码之前之前首先明确需要要实现的功能,我打算实现的功能点如下: 1. 页面布局 1. 标题栏显示打开的文件名称(包括路径),如果没有打开任何文件,或者新建文件还没有保存,显示“无标题” 2. 工具栏...

2018-10-22 11:16:11 2247 2

原创 ngx_http_init_request

记录一下 ngx_http_init_request 函数已经更改为 ngx_http_wait_request_handler

2018-09-12 17:04:19 433

原创 【Python】爬虫抓取必应壁纸

一直想把必应上的壁纸批量下载下来,可惜一直没找到源网站,今天发现在天堂图片网上有必应的壁纸,所以写了一个小爬虫来爬取一下图片看看 网址在此: http://www.ivsky.com/bizhi/bing_v1704/ 首先我们需要一个函数来打开网页,获得网页源码内容,这个函数可以这样写def getHtml(url): #url open打开网页 page = re...

2018-09-09 16:44:28 2580

原创 判断IP是否在IP段内

项目当中衍生出来的一道题,给定一个IP段以及一个IP,判断这个IP是否在此IP段内。IP段的表示方法有两种,一种如192.168.1.0/24,另一种如192.168.1.1-254 例:1.input: 192.168.1.0/24 192.168.1.56output: true//192.168.1.0/24表示的IP范围是192.168.1.1~192.1...

2018-09-09 15:56:58 3502

原创 【LeetCode】【Python】441. Arranging Coins

You have a total of n coins that you want to form in a staircase shape, where every k-th row must have exactly k coins.Given n, find the total number of full staircase rows that can be formed.n is...

2018-09-03 10:03:07 231

原创 【LeetCode】【Python】162.Find Peak Element

Question A peak element is an element that is greater than its neighbors.Given an input array nums, where nums[i] ≠ nums[i+1], find a peak element and return its index.The array may contain multi...

2018-09-03 09:50:57 226

原创 【LeetCode】【Python】657. Judge Route Circle

QuestionInitially, there is a Robot at position (0, 0). Given a sequence of its moves, judge if this robot makes a circle, which means it moves back to the original place.The move sequence is repr...

2018-09-01 00:22:37 210

原创 【LeetCode】【Python】461.Hamming Distance

461.Hamming DistancequestionThe Hamming distance between two integers is the number of positions at which the corresponding bits are different.Given two integers x and y, calculate the Hamming...

2018-08-31 23:56:37 586

原创 【LeetCode】226. Invert Binary Tree

Invert a binary tree. 4 / \ 2 7 / \ / \1 3 6 9to 4 / \ 7 2 / \ / \9 6 3 1思路: 递归解决,倒置左子树,倒置右子树,交换左右子节点指针./** * Definition for a binary tree node. * struc

2017-05-03 17:48:16 389

原创 【Leetcode】167. Two Sum II - Input array is sorted

Given an array of integers that is already sorted in ascending order, find two numbers such that they add up to a specific target number.The function twoSum should return indices of the two numbers suc

2017-05-03 17:42:20 397

原创 【电机控制】整流电路Simulink仿真

1.晶闸管 晶闸管(Thyristor)是一种电子开关原件(跟晶体管(Transistor)不是一个东西),晶闸管有三个极,分别为阳极、阴极和门极。晶闸管导通条件是阳极和阴极之间加有正向电压并且门极施加触发脉冲。 最简单的单脉冲晶闸管相控整流电路如图1.2所示,控制触发脉冲施加的时间就可以控制输出电压。2.单相桥式全控整流电路 单相桥式全控整流电路的原理和以及在阻性负载情况下的输出波形如图

2017-04-26 21:02:59 8680

原创 L1-042日期格式化

世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。输入格式:输入在一行中按照“mm-dd-yyyy”的格式给出月、日、年。题目保证给出的日期是1900年元旦至今合法的日期。输出格式:在一行中按照“yyyy-mm-dd”的格式给出年、月、日。输入样例:03-15-2017输出样例:20

2017-04-22 23:24:41 3301

原创 【LeetCode】415. Add Strings,用string模拟加法

题目链接:https://leetcode.com/problems/add-strings/#/description这个题的目的就是用string模拟整数加法class Solution {public: string addStrings(string num1, string num2) { reverse(num1.begin(),num1.end());//字符

2017-04-22 20:58:14 475

原创 C程序的编译链接过程

程序由源文件编译得到可执行文件看起来好像是很简单的过程,windows的IDE环境下,点一下bulid就可以生成可执行文件,在Linux环境下,gcc编译器也提供了很多选项可以很方便的从源文件生成可执行文件。但是实际上程序的编译和链接是一个比较复杂的过程。大致可以分为四步:1.预处理;2.编译;3.汇编;4.链接。我们以最经典的hello,world程序来下面来分析一下各个步骤的作用分别是什么。//

2017-04-17 17:21:55 1395 1

原创 无题

今天看到一句话,一下戳中我的心。 自律是解决痛苦的根源,因为不自律逃避问题而带来的痛苦比逃避的事情本身的痛苦还要大得多。人生总是会遇到各种各样的困难,该面对的总是要面对,逃是逃不了的,唯有勇敢面对,才有可能克服它。道阻且长 行则将至,研究生三年时间现在只剩下最后的一个月,坚持一下,总会过去的!

2017-04-04 17:13:51 366

原创 PAT-B 1070. 结绳

给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。 给定N段绳子的长度,你需要找出它们能串成的绳子的最大长度。 输入格式:每个输入包含1个测试用例。每个测试用例第1行给出正整数N (2 <= N <= 104);第2行给出N个正整数,

2017-04-04 13:59:43 555

原创 PAT-B 1069. 微博转发抽奖

小明PAT考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔N个人就发出一个红包。请你编写程序帮助他确定中奖名单。输入格式:输入第一行给出三个正整数M(<= 1000)、N和S,分别是转发的总量、小明决定的中奖间隔、以及第一位中奖者的序号(编号从1开始)。随后M行,顺序给出转发微博的网友的昵称(不超过20个字符、不包含空格回车的非空字符串)。注意:可能有人转发多次,但不能中奖多次。

2017-04-04 13:56:53 593

原创 关于数组初始化

1.定义一个数组,如果没有初始化,那么数组元素的值是不确定的。2.数组可以用花括弧括起来的一系列数值来初始化,数值之间用逗号分隔,数值和逗号之间可以有空格符3.初始化时,如果数值个数少于数组元素个数,那么多余的数组元素被初始化为04.初始化时,如果数值个数多余数组元素个数,编译会报错,这个问题可以在数组声明时省略方括号中的数字,让编译器自动匹配数组大小和初始化列表中的数值个数。#include<st

2017-03-30 17:17:20 2193

原创 汇编基础

1. 几个重要的寄存器 寄存器 EIP Instruction Pointer,存储CPU要执行的下一条指令,自动加1,程序员不能修改EIP的值,但是可以被CALL、RET、JUMP、conditional JUMP指令修改 EAX 累加寄存器,通常存储临时变量值或者函数的返回值 EBX 基地址寄存器 EDX 数据寄存器 EBP 堆栈基地址,指向

2017-03-29 17:18:00 556

原创 LeetCode 22. Generate Parentheses

Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.For example, given n = 3, a solution set is:[ "((()))", "(()())", "(())()", "()(())", "(

2017-02-24 19:06:10 459

Automation Studio使用入门手册

贝加莱的PLC使用说明,针对初学者,挺不错的资料

2015-09-24

空空如也

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

TA关注的人

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