- 博客(26)
- 资源 (1)
- 收藏
- 关注
原创 c/c++实现string类的重写
实现string类是一道考验c++基础知识的好题,接下来看这样一道题目,顺便了解string类的内部实现已知string类的原型代码如下,请编写l类string的7个函数:#ifndef STRING_H#define STRING_H#include<iostream>using namespace std;class String {public: S...
2018-07-27 10:55:14
1102
原创 c++实现二叉树的寻找、删除、遍历、查找
大家都知道二叉树最大的特点即只有两个节点,因此可以大致构建这一个二叉树类: #ifndef TREE_H#define TREE_Hclass Tree{public: int data; //value值 Tree *pleft;//左节点 Tree *pright;//右结点 Tree *pfather//父节点 T...
2018-07-25 14:46:23
2090
原创 c++实现KMP算法
//KMP算法,时间复杂度O(m+n)主要解决字符匹配问题,主要思想就是利用next数组保存最长前后相等子缀,避免重复查找,可以参考这个网址的详细解释,很清楚:https://www.bilibili.com/video/av3246487/void produce_next(string &pattern, int next[], int len) { int j = ...
2018-07-18 11:23:39
495
原创 C++实现图的最短路径算法总结--floyd算法、Dijkstra算法以及bellman-Floyd算法
一、Floyd算法 首先是Floyd算法,这种算法思路是最简单的,但是相对于来说,时间复杂度就高一些,这种方法核心思想就是不断进行边松弛优化,主要代码如下;void Floyd(vector<vector<int>> &adjucent, int n) { //adjucent是邻接矩阵,n是点个数 ...
2018-07-18 11:15:26
1861
1
原创 详解c/c++中的符号类型溢出、符号转换
在平时的学习中,总会遇到一些符号位扩展的问题,之前一直没弄清楚,现在重新找了相关资料,总结如下:首先如果所取的类型值,溢出,会发生什么情况? 先讨论有符号类型,以char为例,因为char类型范围在-128-127;当char a=128会发生什么?因为a=127的补码为:01111111;则128二进制码为:10000000,转换过来就为-128,有图,...
2018-07-18 10:44:56
1081
原创 (一)redis源码学习之简单动态字符串(SDS)
Redis没有直接使用C语言传统的字符串表示,而是自己构建了一种名为简单动态字符串(SDS)的抽象类型;该类型相比较于c字符串主要由以下优点:(1)可以在常数复杂度获取字符串长度(由于其内部实现定义了获取长度的属性);(2)杜绝了因为内存分配问题(像strcat等函数)造成的缓冲区溢出问题;(3)减少了修改字符串长度时所需要的内存重分配次数;(4)二进制安全(能保存空字符等,可以保存像图形、音频、...
2018-03-07 16:09:44
177
转载 Linux下mysql修改默认编码方式(utf8)总结
首先明确是哪一个版本的mysql;如果是5.6版本以前,按照以下方法:http://blog.csdn.net/heng_ji/article/details/447823915.7版本按照以下方法:https://www.cnblogs.com/lesliehe/p/7978847.html...
2018-03-04 14:26:40
309
原创 SQLyog连接问题:SQL Error (2003): Can't connect to MySQL server on '46.x.x.x' (10061)
参考:https://stackoverflow.com/questions/11223235/mysql-root-access-from-all-hosts摸索了很久,找了网上很多办法,都无法解决,主要是在Ubuntu16版本之后,bind_address注释掉,这个文件已经不再/etc/my.cnf,也不在/etc/mysql/my.cnf中,最后到stackoverflow找到了解决办法,...
2018-03-03 20:52:00
471
原创 Ubuntu下MySQL安装好之后第一次登陆、修改密码、及出现密码登陆被拒绝等问题解决(access denied(password:yes))
在安装好mysql好之后,并没有设置密码,此时需要自己重新设置密码,首先找到:1./etc/mysql/debian.cnf 文件,找到里面的用户名和密码,2.用mysql -u debian-sys-maint -p 登陆,输入对应的密码;3.然后进去之后,use mysql 使用mysql数据库;4.select user,host,password(部分版本变更为了authentica...
2018-03-03 15:52:29
1773
原创 git常用命令及常见问题解决办法
linux:ubuntu安装:sudo apt-get install gitpwd:查看当前目录位置git init:实现当前文件为reposity;git add 文件名:添加文件内容到库中,文件修改添加到暂存区。git commit -m "xx":提交确认;暂存区的所有内容提交到当前分支git status:查看状态git log:查看修改日志情况git reset --hard HEAD...
2018-03-01 20:05:04
245
原创 Python实现八皇后
首先判断下一个皇后与当前皇后是否冲突:def conflict(state,nextY): nextX=len(state) for i in range(nextX): if abs(state[i]-nextY) in (0,nextX-i): return True return False其中nextX是代表
2017-11-27 09:47:03
998
原创 Python中filter()实现找回文数字
回数是指从左向右读和从右向左读都是一样的数,例如12321,909。请利用filter()滤掉非回数:# _*_ coding:utf-8 _*_def is_palindrome(n): b=str(n) if b[::-1] == b: return int(b) else: returnoutput = filter(is_
2017-11-13 19:35:08
650
原创 Python 利用生成器实现杨辉三角
杨辉三角定义如下:把每一行看做一个list,试写一个generator,不断输出下一行的list:def tringles(): i=[1] j=1 while True: if(len(i)==1): L=i yield L L.append(1)
2017-11-13 16:45:19
286
原创 MySQL之存储引擎
1.查看某个数据表的命令SHOW CREATE TABLE tbl_name MySQL可以将数据以不同的技术存储在文件(内存)中,这种技术就称为存储引擎。每一种存储引擎使用不同的存储机制、索引技巧、锁定水平,最终提供广泛且不同的功能。MySQL支持的存储引擎有:MyISAM(适用于事物的处理不多的情况)、InnoDB(适用于事物处理比较多,需要有外键支持的情况)、Memory、CSV
2017-11-03 16:35:58
248
原创 MySQL存储过程
存储过程是SQL语句和控制语句的预编译集合,以一个名称存储并作为一个单元处理;有以下优点:1).增强SQL语句的功能和灵活性2).实现较快的执行速度3).减少网络流量1.存储过程语法结构CREATE[DEFINER = { user|CURRENT_USER}]PROCEDURE sp_name ([proc_parameter[,...]])[characteri
2017-11-03 15:22:59
220
原创 MySQL之自定义函数
自定义函数:用户定义函数(UDF)是一种对MySQL扩展的途径,其用法与内置函数相同;自定义函数需要两个必要条件:参数和返回值;函数可以返回任意类型的值,同样可以接收这些类型的参数,最多1024个参数;1.创建自定义函数:CREATE FUNCTION function_name RETURNS {STRING|INTEGER|REAL|DECIMAL}routine_body(函数体
2017-11-03 15:18:09
394
原创 MySQL之运算符和函数
一、MySQL运算符和函数类别主要分为字符函数、数值运算符与函数、比较运算符与函数、日期时间函数、信息函数、聚合函数、加密函数1.字符函数eg:SELECT CONCAT('A','B');SELECT CONCAT_WS('|','A','B'),其中“|”为分隔符;SELECT FORMAT(123456.78,2),其中“2”为保留小数位数;LEFT()和RIGH
2017-11-02 20:18:07
235
原创 MySQL子查询与连接
一、修改默认数据及数据表默认编码(utf8为例子)SHOW CREATE DATABASE db_name;//查看数据库编码格式ALTER DATABASE db_name CHARACTER SET = utf8;//修改数据库编码格式ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8;//修改表的编码格式SET NAMES u
2017-11-02 15:40:19
420
原创 MySQL之约束、修改数据表
一、约束约束保证数据的完整性和一致性;约束分为表级约束和列级约束。约束类型包括:NOT NULL(非空约束)、PRIMARY KEY(主键约束)、UNIQUE KEY(唯一约束)、DEFAULT(默认约束)、FORGIGN KEY(外键约束)。列级约束:对一个数据列建立的约束,既可以在列定义时声明,亦可以在列定义后声明表级约束:对多个数据列建立的约束,只能在列定义后声明二、FORE
2017-11-02 09:44:30
555
原创 MySQL操作数据表的记录
一、MySQL之插入操作1)插入记录:INSERT [INTO] tbl_name [(col_name,...)] {values|VALUE} ({expr|DEFAULT},...),(...),..1.如果采取自动编号赋值时,采用直接赋值的时候,可以采用NULL和DEFAULT来指定,会默认自动递增;2.可以利用表达式甚至某些函数进行赋值3.如果默认值DEFAULT被赋值
2017-11-01 20:27:38
769
原创 MySQL数据表
数据表是数据库最重要的组成部分之一,是其他对象的基础1.打开数据库利用USE 数据库名称;2.创建数据表CREATE TABLE [IF NOT EXISTS] table_name(column_name data_type,...)3.查看数据表SHOW TABLES [FROM db_name] [LIKE 'pattren' | WHERE expr]
2017-11-01 19:11:47
354
原创 MySQL数据类型
一、整型1.TINYINT(1个字节)有符号值:-128-127无符号值:0-2552.SMALLINT(2个字节)有符号值:-32768-32767无符号值:0-655353.MEDIUMINT(3个字节)有符号值:-8388608-8388607无符号值:0-167772154.INT(4个字节)有符号值:-2的31次方-2的31次方减1
2017-11-01 16:51:56
281
原创 MySQL基础(三)
一、修改MySQL提示符:(1)连接客户端时通过参数指定shell>mysql -uroot -proot --prompt 提示符(2)连接上客户端后,通过prompt命令mysql>prompt 提示符常见提示符有四个\D 完整的日期\d 当前数据库\h 服务器名称\u 当前用户二、MySQL常用命令SELEC
2017-11-01 16:07:27
296
原创 MySQL基础(二)
MySQL的启动方式:1.利用服务里面的重启2.利用客户端重启3.利用命令编辑框输入:net start(stop) mysql(推荐) ps:其他所有Windows上的网络服务都可以用这个命令实现 net start(stop)服务名如果/MySQL启动中出现的问题/1.执行net start mysql,提示“服务名无效”。- 以管理
2017-10-31 20:42:33
257
原创 MySQL基础(一)
MySQL由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一个开源的关系型数据管理系统,有社区版和企业版。MySQL安装方式(windows):MSI安装和zip安装基于MSI安装:1.从官网下载安装文件:https://dev.mysql.com/downloads/installer/2.双击MSI安装文件,然后继续下一步,安装好就行,配置这些都可以默
2017-10-31 19:48:28
314
原创 LeetCode系列问题求解1
本文主要介绍对LeetCode上的系列问题的求解方法(个人见解),仅供参考; 第一个问题: Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each inp
2017-07-03 15:20:31
315
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人