自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

kwenzh的博客

戒骄戒躁

  • 博客(28)
  • 收藏
  • 关注

原创 记一次Gin框架使用url参数值获取+号出现空格的排查

在这里插入代码片@TOC记一次Gin框架使用url参数值获取+号出现空格的排查问题描述:前几天使用gin框架遇到一个问题,接口请求之后,后台拿到的数据中出现取url参数,url参数值如果有携带+,后台拿到的是一个空格。经排查客户端请求时如果对url参数没有进行编码直接传递+号过来,go语言的net包会将其替换成空格。+号只有转换成url编码, %2b时,gin框架才能正确的解析出+号。源...

2020-03-14 16:01:55 2640

原创 最短路径Dijkstra和Floy算法

最短路径问题一般分为两种情况,单源最短路径(即从一个点出发到其余各点的最短路径问题)和每对顶点之间的最短路径问题。Dijkstra和Floy算法相比之下我更喜欢Floy算法,该算法容易理解,思路简洁。两种算法解决最短路径都是基于贪心的算法,从局部出发一点点扩展。以一个简单的例子来说,如下图,图中有6点,可以看做是6个城市,求各城市之间的最短路径问题。这里图中只有6个顶点,你可能仅凭眼看就能...

2018-06-30 18:57:22 581

原创 字符串模式匹配BF、KMP和Boyer-Moore,Sunday算法

    这几天总结了一下总结了一下字符串匹配的几种算法,BF、KMP和Boyer-Moore,Sunday算法,觉得就KMP算法难于理解,其余三种都非常容易理解掌握。  串匹配:给一个目标串(源串)和模式串(子串),在目标串中找出模式串第一次出现的位置,或者目标串中找不到这样一个模式串。暴力匹配法(BF):就是挨个比较,产生失配了就把模式串往后移动一个位置接着和目标串比较。直到模式串所有字符匹...

2018-05-06 15:05:55 620

原创 数据结构与算法-排序算法总

       所谓排序就是将待排序文件中的记录,按关键字非递增或者非递减次序排列起来。即将一组“无序”的记录序列调整成为“有序”的记录序列。记录是进行排序的基本单位,它由若干个数据项组成。其中有一项可用来唯一标识一条记录,称为关键字项,该数据项的值称为关键字key,关键字的选取根据实际问题的需求而定。        排序的稳定性:通俗的说就是排序结束后,相同关键字的相对位置和排序前是一样的没有...

2018-04-25 14:26:17 358

原创 对标准库stdlib.h中二分查找的理解

前几天面试的时候遇到了这个问题 ,标准库下提供的二分查找改错,当时没有改出来,写得不好,回来查了下,这个函数的原型是:/* bsearch() and qsort() are declared both here, in <stdlib.h>, and in * non-ANSI header <search.h>; we reproduce these decla...

2018-09-20 15:27:36 365

原创 锋利的指针

       谈及指针,想到的应是C语言,C语言的灵魂就在于指针,也是C语言最难的知识之一,要想很好的掌握指针,一定要从内存字节的角度去思考问题.指针其实就是代表了一个内存地址,当然是虚拟内存。我在初学c语言到指针这一部分的时候,根本不知道这是一个什么东西,不明白int *p = &x是什么意思。知道后来通过数据结构的练习和对操作系统以及内存的理解,对指针有了一个认识,不禁感叹指针真是太强...

2018-08-10 14:01:12 266

原创 算法笔记-快速幂

快速幂就是快速的求底数的整数次方,比起朴素的方法O(n)的时间复杂度,其时间复杂度是O(log2n)。这是很不错的一个效率提升。通常要求一个数X的Y次方,记做X^Y,朴素的计算方法是把X乘Y次得到这个结果。而快速幂计算的过程是,对于指数Y进行奇偶性的判断。为了方便解释,记做:ans = base ^exp如果exp为奇数,那么ans = ans * base;如果exp...

2018-07-18 16:37:16 338

原创 结构体内存对齐模式

结构体的字节大小,一个简单的结构体定义如下,这个结构的大小应是8字节(32位下)typedef struct MODEL4 { char c; int x;}MODEL4;char的大小是1,而int是4,但总的大小是8,这就是结构体内存对齐的原因。在32位的机器上,数据是以4字节对齐的,因为这样子,cpu访问起来会很方便。这个结构体的内存里面的图像大概是这样的:图中紫色部分的内存确实没有用...

2018-07-01 21:08:10 218

原创 对堆区、栈区、全局静态区的理解

内存分为

2018-07-01 20:01:38 2644

原创 6.存储过程和函数-mysql

存储过程和函数是在数据库中定义一些SQL语句的集合。然后需要哪些功能的时候,直接掉用存储过程和函数来执行已经定义好了的SQL语句,引入存储过程和函数可以减少开发人员编写重复的SQL。存储过程和函数是在MYSQL的服务器中存储执行的,这个SQL语句是已经编译过了的,可以减少了客户端服务端数据传输。存储过程存储过程的关键词是 PROCEDURE ,和函数有些类似,也有参数还是以这个t_book表为例,...

2018-06-30 22:07:16 309

原创 数据结构与算法-最小生成树Prim和Kruskal

最小生成树的算法这两种算法都是本着贪心的思想从局部出发,一步步扩展,完成整体部分。一个网络包含了一系列由链路相连的结点(在离散数学里面,也叫做图,结点就叫做顶点,链路叫做边)。与树不同,网络中并没有根节点。链路可以是无向(可以从任意一个方向通过它)的, 从你家到我家和从我家到你家就都走一条路,距离也是一样的,或者是有向(只能从一个方向通过它),有向图可以想象,单向高速车道,从西安到宝鸡和从...

2018-06-30 17:07:50 533

原创 数据结构与算法-递归(回溯法)

递归:程序调用自身的编程技巧。具体点说一个函数自己调用自己就是递归。编程中如果要用到递归去解决一个问题,首先要考虑的是递归的停止条件是什么?如果忽略掉这一点,你的程序就会一直递归递归,直到栈溢出,弹出来一个框框。递归何时停止,这是我们在写一个函数之前首要考虑的地方。可以把递归看成一个栈,每一次的递归就好像是压栈,弹出栈的时候就好像是遇到了递归的停止条件,返回条件。返回了上一级的调用函数。二...

2018-06-26 13:08:38 730 3

原创 5. 触发器和常用函数 加密函数-mysql

触发器是由事件来触发的,和update,insert和delete操作相对应。当数据库系统执行这些操作的时候,激活触发器做出相应的操作。创建只有一个执行语句的触发器 较为简单 易于理解比如说有两个图书表t_book和t_bookType,一个存放各图书的信息,都有哪些图书;一个存放图书的类别,各个类别下都有多少本书,记录着各个类别图书的数量。如下图现在往t_book里面加入一本新数学类的书《运筹学...

2018-06-24 18:31:24 783

原创 4. 索引和视图-mysql

索引可以理解成本图书的目录,如果这本书没有目录,你需要找到某一个内容,需要一页页的翻阅查看,数据库表的每一条记录就可以看成是图书的每一页,当我们要查询某一条记录的时候,数据库是顺序的查找,在整个表里面用你传递进来的where条件一条条的找,也就是全表扫描,当表里面的记录数量达到很多时,是非常耗时的,不能够满足需求。给表加上索引,相当于这个表的目录,下一次查询记录的时候,可以在目录里面翻,缩小的查找...

2018-06-24 16:48:01 290

原创 剑指offer中不错的题总结(代码已整合放至Git)

最近接着刷题,剑指offer里面这些道题还不错,整理下来。2018/08/02更新: 66道题的代码终于整合好了! ! ! ! !  已放至git: 代码链接用两个栈实现一个队列栈和队列的区别是先进后出(LIFO)和先进先出(FIFO)的区别。用两个栈实现一个队列思想是,出栈的时候,把栈里面所有元素倒入另一个栈里面,相当于对这个栈 的所有元素出栈一次,然后倒入的栈出栈就是队列一样。...

2018-06-10 18:45:09 529

原创 算法笔记-对于ArrayList的理解 动态数组

ArrayList的本质还是数组,是Java一种可变长数组的数据结构,概括的说底层实现机制,是扩容和拷贝元素。ArrayList实现了List等好多个接口 ,主要看一下List接口。public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Clon...

2018-06-08 10:28:06 473

原创 3.插入,更新和删除数据-mysql

一、插入数据插入数据的关键词是INSERT INTO,给一张表插入数据可分给所有字段插入数据,给指定字段字段插入数据。1.1 给所有字段插入数据INSERT INTO 表名 VALUES(值 1,值 2,值 3,...,值 n);表名的后面没有加上具体的字段,后面的values就要写上所有字段插入数据,没有的也要写上null还是拿这张表来练习INSERT INTO t_bookinfo VALUE...

2018-06-02 15:06:27 1125

原创 1.数据类型、数据库、表的基本操作-mysql

mysql数据库的常用用法总结

2018-05-30 23:25:40 196

原创 2.查询操作-mysql

主要总结:单表查询,使用各聚合函数查询,连接查询,子查询,合并查询结果,为表、字段取别名。练的时候还是用图形化界面去写sql,黑框写sql错了不好改 也不太好编辑。一、单表查询1.1查询所有字段信息和查询指定字段信息查询所有字段的话可以直接上select*可以把所有字段写出来,区别的是写所有字段的话可以按照字段排列的顺序显示,select*查询出来显示的就是表的顺序结构select * from ...

2018-05-30 23:24:55 382

原创 strcpy,memcpy和memset的用法

1、strcpy的用法,把一个字符串的内容拷贝给另一个字符串。函数的原型如下_CRTIMP char * __cdecl strcpy(char *dest, const char *src);把src字符串的内容赋值给dest,当然dest要有足够的空间能放得下src拷贝过来的字符串,拷贝的过程中src遇到'\0'字符串就停止了。#include<stdio.h>#include...

2018-05-23 21:30:18 381

原创 2018春笔试题总结

百度笔试的编程题有三道,岗位是移动软件开发工程师,都不是复杂的算法题,三道题AC了两道,考察递归多一点。第一道题是排列组合的题:有n个国家的参赛队伍,每只队伍有5个选手,现在吧这些所有的选手排成一队,要求是每位选手的旁边是自己国家的人,问有多少种不同的排列方法,随着n变大,这个结果会很大,实际结果可以对一个数据取余输出,我忘了是多少了。比如只有一个国家那就有5*4*3*2*1=120种不同的方法。...

2018-05-04 20:21:04 200

原创 数据结构与算法-哈希表链地址法完成

        散列表是实现字典操作的一种有效的数据结构,尽管在最坏情况下查找一个元素时间和链表相同。但实际应用中,散列表的性能是极好的,合理情况下,平均时间复杂度为O(1)。typedef struct Datatype { int key; USER_TYPE value;}Datatype;typedef struct HashTable { int times;...

2018-05-04 20:03:30 12224 1

原创 数据结构与算法-二维数组与指针、任意行列的二维数组

        数组是最常用到的存储结构,数组是在内存上一段连续的存储空间,数组名的本质就是数组的首地址,所以在函数传参时函数形参可以是一个指针,实参传递时直接传递数组名即可。像这样。void showArray_1D(int *array, int array_length);int a[] = {5,2,3,58};showArray_1D(a, sizeof(a) / sizeof...

2018-05-02 17:15:31 590

原创 数据结构与算法-稀疏矩阵(三元表的实现)

        稀疏矩阵,矩阵中非零元素的个数远小于矩阵元素总数,且非零元素的分布没有规律,可以称该矩阵为稀疏矩阵。如果还用一个row*col的矩阵去表示这些信息,浪费空间,可以对矩阵换一种存储结构,只需要记录矩阵中非零元素的位置和值。也就是通过三元表来完成一个稀疏矩阵的表示,此外还有通过链表,这里讲一下三元表的稀疏矩阵以及稀疏矩阵的打印,转置。               三元表的结构就是下图,...

2018-05-02 15:40:40 7027

原创 数据结构与算法-栈和队列的数组实现、具有最小元素的栈

        栈(stack)是一种以后进先出为顺序对对象进行添加或者删除的数据结构,是一种只允许在一端进行插入删除的线性表。可以把栈想象成桌子上的一堆书,可以在这堆书的顶部放上一本书就是入栈,或者把这堆书最顶部的一本书拿走就是出栈,但是你不能直接抽出来书堆中间的书,只能对书堆顶部一本书操作。        1、栈的数组实现        栈的数组实现相比链表容易多了,起码没有指向指...

2018-04-23 18:32:52 627

原创 数据结构与算法-单链表篇

        在数据结构中,链表可能是程序员会建立的最简单的数据结构。也是非常基础的一种数据结构,往往简单的东西越需要扎实,大多数的情况是眼高手低觉得很简单差不多,一写代码就出错,一运行就崩溃,完成链表这一数据结构主要在于对指针的使用。        链表是一种线性的数据结构,相比静态申请数组空间必须要给定长度,链表更加长灵活,如果数据的个数会随着时间变化而增加或者减少,链表是一种很好的存储...

2018-04-18 18:52:08 11635

原创 贪吃蛇代码

是在在TurboC2.0下跑起来的 闲了再仔细讲#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<bios.h>#include<math.h>#define ESC 0x011b#define ENTER 0x1c0d#define ...

2018-02-19 22:42:35 288

原创 巨大数四则运算

大数的四则运算    历经10天时间完成了整数巨大数的四则运算,一方面由于太懒没有同时完成小数巨大数部分,另一方面小数巨大书的完成也是建立在整数的基础之上,这也是没有同时完成小数部分的一个主要原因。完成整数是一个摸索的过程,完成之后在技术上有一定的成熟,再转向小数效率会更加的高,整体大框架也会更好,不必大作改动。    实现大数的目的在于,解决超出计算机可表示范围数据的存储以及运算,计算机...

2018-02-16 22:35:36 1202

空空如也

空空如也

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

TA关注的人

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