自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lanzh_

爱编程,爱生活

  • 博客(234)
  • 论坛 (1)
  • 问答 (1)

转载 Python标准库模块之heapq

该模块提供了堆排序算法的实现。堆是二叉树,最大堆中父节点大于或等于两个子节点,最小堆父节点小于或等于两个子节点。创建堆heapq有两种方式创建堆, 一种是使用一个空列表,然后使用heapq.heappush()函数把值加入堆中,另外一种就是使用heap.heapify(list)转换列表成为堆结构import heapq# 第一种"""函数定义:heapq.heappush(heap, item) - Push the value item onto the heap,.

2020-08-30 21:33:07 25

原创 LeetCode-【二分查找】解题技巧

5489. 两球之间的磁力分析:题意求最大化最小,类似这样的求最大化最小值、最小化最大值等都可以用二分搜索解决.1.找到所有position的最大距离和最小距离;2.通过二分法,分别判断满足条件的距离(a.mid=(最大距离+最小距离)/2;b.满足条件的点是否>=m);下面是实现示例:class Solution(object): def check(self,p,mid,m): c = 0 i,j=0,1 while

2020-08-16 18:00:18 29

原创 LeetCode-【DFS】解题技巧

LeetCode题目:面试题 08.10. 颜色填充 def floodFill(self, image, sr, sc, newColor): """ :type image: List[List[int]] :type sr: int :type sc: int :type newColor: int...

2020-04-25 21:30:55 195

原创 LeetCode-【BFS】解题技巧

LeetCode题目:地图分析题目分析(分析转自sweetiee):这是一道典型的BFS基础应用,为什么这么说呢?因为我们只要先把所有的陆地都入队,然后从各个陆地同时开始一层一层的向海洋扩散,那么最后扩散到的海洋就是最远的海洋!并且这个海洋肯定是被离他最近的陆地给扩散到的!下面是扩散的图示,1表示陆地,0表示海洋。每次扩散的时候会标记相邻的4个位置的海洋:你可以想象成你从每个陆...

2020-03-29 14:55:25 167

原创 LeetCode-【链表】解题技巧

删除链表的节点 ListNode* deleteNode(ListNode* head, int val) { ListNode* dummy = new ListNode(0); //构建虚拟头节点 dummy->next = head; ListNode *t=dummy; while(t&&t-...

2020-03-15 18:35:45 196 1

原创 LeetCode-【数学】数学在解题中的技巧

1. 不使用变量交换两个数交换两个数# 异或a ^ b = cc ^ b = aa ^ c = bnumbers[0] ^= numbers[1];numbers[1] ^= numbers[0];numbers[0] ^= numbers[1];# 加减A = A+BB = A-BA = A-Bnumbers[1]=numbers[0]+numbers[1];...

2020-02-23 13:59:31 103

原创 LeetCode-【数学】判断素数

leetcode 204题目链接:计算质数厄拉多塞筛法def countPrimes(self, n): """ :type n: int :rtype: int """ if n < 2: return 0 res = 0 arr = [0] *...

2020-02-11 22:05:24 158

原创 【知识整理】makefile gtest gcov(lcov)

1.基础安装(安装网上有很多教程,根据机器自行安装即可)1)安装gtest工具2)安装lcov工具2.使用示例1)目录结构main:程序入口ut_test:对branches,calc,function文件夹中的代码行进行单元测试(ut),测试框架为gtest2)示例代码(源代码和编译执行过程都在github上)https://github.com/zhlan/...

2019-01-12 22:58:37 1260

原创 LeetCode-【数学】解答技巧总结

leetcode 7题目链接:LeetCode7_反转整数int reverse(int x) { int r=0; while(x) { int t=r; r=r*10+x%10;//r从低位加到高位 if((x<10)&&(t!=(r-x%10)/10))//回退到加当前循环数之前,即t,看是否溢出 { return 0; } ...

2018-07-25 20:19:45 655

原创 leetcode mysql-汇总(中等)

626. 换座位小美是一所中学的信息科技老师,她有一张 seat 座位表,平时用来储存学生名字和与他们相对应的座位 id。其中纵列的 id 是连续递增的小美想改变相邻俩学生的座位。你能不能帮她写一个 SQL query 来输出小美想要的结果呢?示例:+---------+---------+| id | student |+---------+---------+| 1 ...

2018-06-27 21:20:01 438

原创 leetcode mysql-汇总(简单)

182. 查找重复的电子邮箱编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。示例:+----+---------+| Id | Email |+----+---------+| 1 | a@b.com || 2 | c@d.com || 3 | a@b.com |+----+---------+根据以上输入,你的查询应返回以下结果:+---------+...

2018-06-23 20:50:42 552

原创 python_Qtimer学习

from PyQt5.QtWidgets import *from PyQt5.QtCore import *import sysfrom datetime import datetimeclass WinTimer(QWidget): def __init__(self,parent=None): super(WinTimer,self).__init__(pa...

2018-05-27 17:45:58 3908

原创 python_多线程

学习python多线程,参考了别人的博客,完成了以下简单的示例:1.使用多线程“同时”去做两件事:#coding=utf-8import threadingfrom time import ctime,sleepdef music(func): for i in range(2): print("I was listening to %s. %s" %(func,c...

2018-05-16 21:25:34 136

原创 python_安居客区域房源均价工具(matplotlib)

让数据更有价值,就需要对抓取的信息进行适当的处理,然后展现出来。0.打开源码,修改源码该位置选择城市:1.抓取的安居客不团区域房价,然后计算该区域均价,然后通过matploylib绘图:2.python源码:#-*- encoding=UTF-8 -*-from urllib.request import urlopenfrom bs4 import BeautifulSoupimport ...

2018-05-01 22:41:23 514

原创 python_数据库(增删查改)

使用python对数据库进行操作的总结:import randomfrom pymysql import cursors,connectconn=connect(host='127.0.0.1', user='root', password='admin', db='test', ch

2018-04-29 15:42:40 777

原创 python_常用知识总结

1.操作EXCELimport xlrd# 获取一个Book对象workbook = xlrd.open_workbook("C:/bz/xa2018-05-01_14_55_15.xlsx")# 获取一个sheet对象的列表sheets = workbook.sheets()# 遍历每一个sheet,输出这个sheet的名字(如果是新建的一个xls表,可能是sheet1、s...

2018-04-23 23:08:40 254

原创 python_爬取【proxy ip】

最近在抓取豆瓣电影信息,但是请求太过频繁后,豆瓣后台会封掉请求IP,导致请求403,查了一圈资料,发现可以使用代理IP进行访问,代理IP的获取网址为:http://www.xicidaili.com/ 获取代理IP后,通过搜狗网页进行了简单的验证。import timeimport requestsimport re###请求头headers = { 'U

2018-04-22 16:12:44 911

原创 python_爬取【安居客房源信息】

最近在看房子,试着抓取了安居客上房源信息,供大家学习参考。#-*- encoding=UTF-8 -*-from urllib.request import urlopenfrom bs4 import BeautifulSoupimport xlrdimport xlwtcity="sz" ###城市缩写html_sheet=5 ###页面数url="https:

2018-03-28 23:07:01 3562 1

原创 python_爬取【搜狗图片】

1.利用python抓取网站上的图片,对于学习python及对网页数据分析处理很有帮助,也可以学习一些web方面的知识,我尝试使用【搜狗图片】搜索到的图片作为抓取对象,抓取【搜狗图片】主页各个标题栏的图片,以及【其他】输入图片类型的图片,使用tkinter完成了一个简单的UI界面。2.一般抓取网页图片,需要先访问页面,然后提取源码,依次解析各个图片URL,然后直接下载即可,这些网上的教程很多,在此...

2018-03-24 17:10:50 3556 3

原创 tkinter--计算器

刚开始学习tkinter,试着做了个计算器,记录一些常用的函数和使用方法。from tkinter import * #导入tkinter库import reroot =Tk() #给窗体root.title('calculator') #设置窗体名字root.geometry('290x427')root.resizable(width=False, height=False)

2018-01-07 15:20:46 416

原创 位图法查找算法

给定没有重复,没有排序的80000000~89999999之间的10000000个数,然后开始查找某几个数是否在该数据集合中;先看看vector的查找性能://vector#include#include#include#includeusing namespace std;const unsigned int max_count=9999999;int main()

2015-12-03 21:30:37 1944

原创 位图法排序

位图法:bitmap,就是用每一位来存放某种状态,适用于大规模数据,但数据状态又不是很多的情况。通常是用来判断某个数据存不存在的。对unsigned没有重复的数字进行排序,假设我们要对0-7内的5个元素(4,7,2,5,3)排序。那么我们就可以采用Bit-map的方法来达到排序的目的。要表示8个数,我们就只需要8个Bit(1Bytes),首先我们开辟1Byte的空间,将这些空间的所有Bit

2015-11-29 16:50:55 1510

原创 bitset应用---产生1万个不重复的随机数

#include#include#include#includeusing namespace std;const unsigned int max_num=20000;const unsigned int max_count=10000;int main(){ unsigned int i=0; bitset bit; //以下向磁盘文件写入数据 ofstream

2015-11-29 14:43:48 1035

原创 指针的指针

关于指针的一点总结。

2015-10-05 14:24:21 523

转载 函数指针的几种用法

转自:函数指针什么是函数指针?函数指针指向的是特殊的数据类型,函数的类型是由其返回的数据类型和其参数列表共同决定的,而函数的名称则不是其类型的一部分。一个具体函数的名字,如果后面不跟调用符号(即括号),则该名字就是该函数的指针(注意:大部分情况下,可以这么认为,但这种说法并不很严格)。函数指针的声明方法// 定义函数指针pfint (*pf)(constint&

2015-05-02 21:28:23 2619

原创 关于函数返回引用的分析?

一、函数返回值和返回引用是不同的函数返回值时会产生一个临时变量作为函数返回值的副本,而返回引用时不会产生值的副本。1.普通函数返回值C++ primer中这样写:函数的返回值用于初始化在调用函数处创建的临时对象。在求解表达式时,如果需要一个地方储存其运算结果,编译器会创建一个没有命名的对象,这就是临时对象。例如:#includeusing namespace std;i

2015-04-30 14:23:16 999 1

原创 C++标准库---容器作为形参?

通常,函数不应该有 vector 或其他标准库容器类型的形参。调用含有普通的非引用 vector 形参的函数将会复制 vector 的每一个元素。因此,调用含有普通的非引用vector作为形参的函数,无论效率还是资源利用率,都是极大的浪费。从避免复制 vector 的角度出发,应考虑将形参声明为引用类型。但是,事实上,C++ 程序员倾向于通过传递指向容器中需要处理的元素的迭代器来传递容器:

2015-04-29 20:05:27 1613

原创 何时需要强制类型转换?

可能运行程序时,大家或多或少出现过编译器报这样的警告:#includeusing namespace std;int main(){ int i=3; double j=3.99; i*=j; cout<<i<<endl;//11 system("pause"); return 0;}warning C4244: “*=”: 从“double”转换到“int

2015-04-29 15:07:12 1476

原创 C++中new、delete 与new[]、delete[]

在C++中,申请堆内存,使用new或者new[],在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2) 为自定义类型分配和回收空间。先看以下例子:#include#includeusing

2015-04-27 20:48:50 514

原创 _BLOCK_TYPE_IS_VALID(pHead->nBlockUse问题解析

在用vs写程序,遇到了一些问题,_BLOCK_TYPE_IS_VALID(pHead->nBlockUse是其中的一个,后来在网上查了一下,得到相关信息,特记录一下,以备查看。问题产生原因:1.内存泄漏;所以当程序退出时,系统会收回分配的内存,于是调析构函数,由于内存已被错误地释放,于是就会出现“Debug Assertion Failed”的错误。2.这个assert说明什么问题呢?

2015-04-27 19:38:01 12364 3

原创 C语言---指针与引用的区别

指针与引用的区别      虽然使用引用 (reference)和指针都可间接访问另一个值,但它们之间有两个重要区别。第一个区别在于引用总是指向某个对象:定义引用时没有初始化是错误的。第二个重要区别则是赋值行为的差异:给引用赋值修改的是该引用所关联的对象的值,而并不是使引用与另一个对象关联。引用一经初始化,就始终指向同一个特定对象(这就是为什么引用必须在定义时初始化的原因)。#in

2015-04-26 21:33:49 1370

原创 extern "C"

一、简介extern C extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般只包括函数名。

2015-04-20 23:47:37 447

原创 C语言链表基础

实现一个简单的链表#include#include#includeusing namespace std;typedef struct jiaowu{ long num; //学号 float score; //成绩 struct jiaowu *next;}Node;//创建头结点,赋初值为0Node* CreateInfoNode(){ Node

2015-04-02 10:59:48 713

原创 大数相乘

比较大的两个数相乘,采用字符运算,按位相乘,控制好进位就可以了。相关示例参考:可怕的阶乘 //大数相乘#includeusing namespace std;#define max 100void CalcNN(char *A,char *B,char *C){ if(NULL==A||NULL==B) { return; } int len_a=strlen(

2015-03-29 17:16:22 490

原创 可怕的阶乘

对于10以内的数字,求它的阶乘,可以存储在整型或者长整型类型中,但是如果大于10的数字,求它的阶乘,例如:20!位数高达19位,这就不能直接存储了,必须采用灵活的方法来处理,比较大的数的阶乘。#includeusing namespace std;#define max 300void CalcNN(int n, char *pOut){ int i_out=0; if(n<

2015-03-29 16:02:44 636

原创 sscnaf()&sscanf_s()在ip地址识别与判断上的应用

sscanf_s与sscanf函数在对字符串控制写入方面比较灵活,特别是对ip地址的处理,有效性判断等问题,都能很有效的解决。//sscanf sscanf_s#include#includeusing namespace std;int main(){ char buf[256]={0}; char bufs[256]={0}; sscanf("12345678

2015-03-28 17:11:38 2233

转载 栈区和堆区内存分配区别

一直以来总是对这个问题的认识比较朦胧,我相信很多朋友也是这样的,总是听到内存一会在栈上分配,一会又在堆上分配,那么它们之间到底是怎么的区别呢?为了说明这个问题,我们先来看一下内存内部的组织情况.从上图可知,程序占用的内存被分了以下几部分.1、栈区(stack)由编译器自动分配释放 ,存放函数的参数值,局部变量的值等,内存的分配是连续的,类似于平时我们所说的栈,如果还不清楚,

2015-03-17 22:20:09 868

转载 C语言字节对齐、结构体对齐最详细的解释

文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。  一、概念       对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。     二、为什么要字节对齐      需要字节对齐的根本原因在于CPU访问数

2015-03-17 21:57:58 39392 6

原创 Mysql---数据查询(一)

在进行数据查询操作前,我们需要建立三张表,如下:1.建立学生表:CREATE TABLE student(Sno VARCHAR(7) PRIMARY KEY,Sname VARCHAR(10) NOT NULL,Ssex VARCHAR(2),Sage TINYINT,Sdept VARCHAR(20));2.建立课程表:CREATE TABLE courc

2015-03-14 15:31:55 604

原创 strcpy() strncpy() strcpy_s()

strcpy()是依据源串的/0作为结束判断的,不检查copy先的Buffer的Size,如果目标空间不够,就有会出现缓冲区溢出问题。类似这样的函数还有:字符串拷贝函数:strcpy, wcscpy 字符串拼接函数:strcat, wcscat  字符串格式化输出函数:sprintf, swprintf, vsprintf, vswprintf,  字符串格式化输入函数:sca

2015-03-13 13:16:41 2196

空空如也

lanzhihui_的留言板

发表于 2020-01-02 最后回复 2020-01-02

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