自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

杰哥的专栏

快乐工作,认真生活

  • 博客(140)
  • 资源 (13)
  • 收藏
  • 关注

原创 golang泛型初尝试

package mainimport ( "fmt" "reflect")func contains[T any](data []T, elem T) bool { for _,d := range data { if reflect.DeepEqual(d,elem) { return true } } return false}func main() { fmt.Println(contains([]string{"abc"}, "abc")) f

2021-11-20 15:37:24 272

原创 多字符串数组求交集

func IntersectString(strSlices ...[]string) []string { if len(strSlices) == 0 { return nil } elemNum := len(strSlices) if elemNum == 1 { return UniqString(strSlices[0]) } minIndex := func() int { min, min

2021-11-20 11:51:57 2316

原创 无序数组查找比K大确不存在数组中的最小正整数

题目无序数组查找比K大确不存在数组中的最小正整数。说明数组arr=[]string{5,2,4,8},k=1,则结果为3。代码func TestFindMissing(t *testing.T) { for i, tc := range []struct { target int arr []int k int }{ { target: 9, arr: []int{8, 7, 6, 10, 11, 32, 12, 13}, k:

2021-06-05 14:49:28 339

原创 mysql一次插入多条数据,并按照唯一索引去重

drop table if exists test_id;create table `test_id` ( `id` bigint unsigned not null auto_increment comment '主键id', `name` varchar(20) not null default 'name', `age` int not null default 20, `created_at` datetime not null default current_timestamp, p

2021-05-31 19:44:53 243

原创 获取本周周一

package timeimport ( "testing" "time")// getMonday 获取t对应的周一日期func getMonday(t time.Time) time.Time { wd := t.Weekday() offset := int(time.Monday-wd-7) % 7 monday := t.AddDate(0, 0, offset) return monday}func TestGetMonday(t *testing.T) { fo

2021-05-08 10:45:02 138

原创 《修改软件的艺术》读书笔记

实践1: 在问如何做之前先问做什么、为什么做、给谁做不要说如何一旦开发团队听到或看到描述如何做事的需求, 他们就被束缚了双手. 这等于直接说"用这样的方式做". 然后开发者照着编码, 通常情况下他们机械性地堆砌代码, 而不会后退一步去问一句"我怎么能够创建一组交互的对象以实现这个行为呢".将"如何"变为"为什么"要有一个产品负责人一方面, 产品负责人是一个超级明星. 另一方面, 产品负责人对产品来说生死攸关. 有时候产品负责人被称为产品的七寸. 这个角色必须有绝对的权威.产品负责人是沟通的中枢.

2021-01-28 11:57:34 129

原创 应用层拒绝服务攻击

DDOS简介 (Distributed Denial of Service)常见DDOS攻击SYN flood利用TCP协议设计缺陷UDP floodICMP floodSYN flood过程首先伪造大量的源IP地址, 分别向服务器端发送大量的SYN包服务器返回SYN/ACK包因为原地址是伪造的, 所以伪造的IP并不会应答服务器端没有收到伪造IP的回应, 会重试3~5次并等待一个SYN time(一般为30秒至2分钟)如果超时则丢弃这个连接.攻击者大量发送这种伪造源地

2021-01-28 11:53:33 218

原创 一种数据库优化

create table test (`id` bigint(20) NOT NULL AUTO_INCREMENT, `val` int(10) NOT NULL DEFAULT '0' , `source` int(10) NOT NULL DEFAULT '0' ,PRIMARY KEY (`id`),key (`val`));DELIMITER $$CREATE PROCEDURE insert_data(IN in_count INT)BEGIN DECLARE ...

2020-12-14 18:10:44 64

原创 golang优雅停止服务

后端服务通常会需要创建子协程来进行相应的作业,但进程接受到终止信号或正常结束时,并没有判断或等待子协程执行结束。下面通过记录子协程个数来阻塞进程结束直至所有子协程执行完毕。主要思想通过子协程计数器管理,当计数为0时方可终止进程。代码实现package taskcontrollerimport ( "errors" "fmt" "os" "os/signal" "path/filepath" "reflect" "runtime" "sync" "syscall")var

2020-12-05 15:53:45 706

原创 json反序列化为interface时整数精度丢失

精度丢失在golang中需要对字符串或byte数组进行json序列化时通常使用json.Unmarshal,单对于大数转为interface时会丢失精度,如下:func TestMarshal(t *testing.T) { str := `{ "manageId":377555531776135173, "littleM":123 }` data := make(map[string]interface{}) err := json.Unmarshal([]byte(str), &am

2020-10-15 11:13:50 526

原创 Redis客户端

客户端Redis服务器是典型的一对多服务器程序:一个服务器可以与多个客户端建立网络连接,每个客户端可以向服务器发送命令请求,而服务器则接收并处理客户端发送的命令请求,并向客户端返回命令回复。通过使用I/O多路复用技术实现的文件事件处理器,Redis服务器使用单线程单进程的方式来处理命令请求,并与多个客户端进行网络通信。对于每个与服务器进行连接的客户端,服务器都为这些客户端建立了相应的客户端状态,其中包括:客户端的套接字描述符客户端的名字客户端的标志值(flag)指向客户端正在使用的数据库指针,

2020-07-30 14:53:04 119 1

原创 Redis事件

事件Redis 服务器是一个事件驱动程序, 服务器需要处理以下两类事件:文件事件: Redis 服务器通过套接字与客户端进行连接, 而文件事件就是服务器对套接字操作的抽象. 服务器与客户端的通信会产生相应的文件事件, 而服务器则通过监听并处理这些事件来完成一系列网络通信操作.时间事件: Redis 服务器中的一些操作 (比如 serverCron 函数) 需要在给定的时间点执行, 而时间事件就是服务器对这类定时操作的抽象.文件事件Redis 基于 Reactor 模式开发了自己的网络事件处理器

2020-07-30 09:25:13 111

原创 Redis——RDB 持久化

Redis 是一个键值对数据库服务器, 服务器中通常包含着任意个非空数据库, 而每个非空数据库中又可以包含任意个键值对. 服务器中的非空数据库以及他们的键值对统称为数据库状态.Redis 的 RDB (Redis DataBase) 持久化功能将 Redis 某个时间点上的数据库状态保存到一个 RDB 文件中.RDB 文件的创建和载入生成 RDB 文件的命令: 阻塞创建 (SAVE)、非阻塞创建 (BGSAVE).RDB 文件的载入在服务器启动时自动载入.如果服务器开启了 AOF 持久化功能, 那

2020-07-30 08:30:03 100

原创 Redis AOF持久化

与RDB持久化通过保存数据库中的键值对来记录数据库状态不同, AOF持久化通过保存Redis服务器所执行的写命令来记录数据库状态.AOF持久化的实现AOF持久化功能的实现可以分为命令追加、文件写入、文件同步三个步骤.命令追加当AOF持久化功能处于打开状态时, 服务器在执行完一个写命令后, 会议协议格式将被执行的写命令追加到服务器状态的aof_bug缓冲区的末尾:struct redisServer { // ... // AOF缓冲区 sds aof_buf; /

2020-07-29 15:19:53 79

原创 redis之字符串&链表

Redis入门Redis简介Remote Dictionary Serve 简称Redis, 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串, 散列, 列表, 集合, 有序集合与范围查询, bitmaps, hyperloglogs 和地理空间索引半径查询。Redis 内置了复制,LUA脚本, LRU驱动事件,事务和不同级别的磁盘持久化,并通过Redis哨兵和自动分区提供高可用性。相关文档官网地址: https://R

2020-07-26 17:36:11 199

原创 golang 性能剖析pprof

golang 性能剖析pprofpprof简介pprof 是用于可视化和分析性能分析数据的工具.功能CPU Profiling:CPU 分析, 按照一定的频率采集所监听的应用程序 CPU(含寄存器)的使用情况, 可确定应用程序在主动消耗 CPU 周期时花费时间的位置.Memory Profiling:内存分析, 在应用程序进行堆分配时记录堆栈跟踪, 用于监视当前和历史内存使用情况, 以及检查内存泄漏.Block Profiling:阻塞分析, 记录 goroutine 阻塞等待同步(包括定时

2020-06-06 18:43:05 407

原创 linux系统调用

无论别人写的程序(shell命令等),还是自己写的程序,运行起来都是进程。进程的运行就需要系统调用。##进程管理运行前先要创建进程,创建进程的系统调用为fork。在linux中,要创建一个新的进程需要一个老进程调用fork来实现,其中老进程叫做父进程,新进程叫做子进程。当父进程调用 fork 创建进程的时候,子进程将各个子系统为父进程创建的数据结构也全部拷贝了一份,甚至连程序代码也是拷贝过来的...

2019-09-05 14:29:31 129

原创 求解数独

我的代码package mainimport ( "fmt")func main() { //board := [][]byte{{'5', '3', '.', '.', '7', '.', '.', '.', '.'}, {'6', '.', '.', '1', '9', '5', '.', '.', '.'}, {'.', '9', '8', '.', '.', '.', ...

2019-04-04 16:03:36 226

原创 Find First and Last Position of Element in Sorted Array

题目Given an array of integersnumssorted in ascending order, find the starting and ending position of a giventargetvalue.Your algorithm's runtime complexity must be in the order ofO(logn).If...

2019-03-29 05:03:34 117

原创 search in rotated sorted array

题目Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.(i.e.,[0,1,2,4,5,6,7]might become[4,5,6,7,0,1,2]).You are given a target value to search. If fo...

2019-03-29 04:21:28 98

原创 longest valid parentheses

题目Given a string containing just the characters'('and')', find the length of the longest valid (well-formed) parentheses substring.Example 1:Input: "(()"Output: 2Explanation: The longest v...

2019-03-27 22:13:03 116

原创 substring with concatenation of all words

题目You are given a string,s, and a list of words,words, that are all of the same length. Find all starting indices of substring(s) insthat is a concatenation of each word inwordsexactly once an...

2019-03-26 21:10:51 124

原创 reverse nodes in k group

题目Given a linked list, reverse the nodes of a linked listkat a time and return its modified list.kis a positive integer and is less than or equal to the length of the linked list. If the number...

2019-03-25 21:09:40 73

原创 golang学习笔记

使用函数的正确姿势重要概念函数签名:输入与输出参数类型列表。函数类型定义:type Printer func(content string,str string) (n int, err error)type Printer func(string, string) (int, error)type Printer func(content string, id in...

2019-03-21 01:02:54 191

原创 roman to integer

题目Roman numerals are represented by seven different symbols:I,V,X,L,C,DandM.Symbol ValueI 1V 5X 10L 50C 100D ...

2019-03-16 13:23:57 68

原创 Integer to Roman

题目Roman numerals are represented by seven different symbols:I,V,X,L,C,DandM.Symbol ValueI 1V 5X 10L 50C 100D ...

2019-03-14 20:08:03 92

原创 Container With Most Water

题目Givennnon-negative integersa1,a2, ...,an, where each represents a point at coordinate (i,ai).nvertical lines are drawn such that the two endpoints of lineiis at (i,ai) and (i, 0). Find...

2019-03-14 14:18:52 69

原创 正则表达式匹配 (Regular Expression Matching )

题目Given an input string (s) and a pattern (p), implement regular expression matching with support for'.'and'*'.'.' Matches any single character.'*' Matches zero or more of the preceding eleme...

2019-03-14 13:19:57 268

原创 回文数字(Palindrome Number)

题目Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.Example 1:Input: 121Output: trueExample 2:Input: -121Output: false...

2019-02-22 10:54:29 709

原创 最长回文子串

题目5. Longest Palindromic SubstringGiven a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.Example 1:Input: "babad"Output: "bab"Not...

2018-12-26 09:47:02 100

原创 两个有序数组中位数

题目4. Median of Two Sorted ArraysThere are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log ...

2018-12-25 14:46:27 104

原创 最长无重复公共子串

题目:Longest Substring Without Repeating Characters:Given a string, find the length of the longest substring without repeating characters.Example 1:Input: "abcabcbb"Output: 3 Explanation: The a...

2018-12-25 12:46:10 133

原创 两数相加(Add Two Numbers)

题目You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and retu...

2018-12-25 10:07:47 129

原创 三个数之和

package mainimport ( "fmt" "sort")func threeNum(data []int, target int) [][3]int { result := make([][3]int, 0) sort.Ints(data) if len(data) == 0 { return result } for k := 0; k < len...

2018-12-23 11:59:27 271

原创 顺序执行模块代码处理技巧——error转panic

问题描述完成某项具体工作时, 通常会将工作拆分成多个子模块, 然后将各个子模块进行有效组合即可解决问题. 当各个子模块具有严格依赖关系时, 通常对每一个子模块的运行结果进行判断, 代码结构如下:func processBigProgram() (da interface{}, err error) { data, err := f1() if err != nil { r...

2018-09-22 14:21:49 204

原创 基准测试(benchmark)

简介基准测试是一种测试代码性能的方法, 同时也可以用来识别某段代码的CPU或者内存效率问题. 许多开发人员会用基准测试来测试不同的并发模式, 或者用基准测试来辅助配置工作池的数量, 以保证能最大化系统的吞吐量.和单元测试的文件名一样, 基准测试的文件名也必须以“_test.go”结尾. 另外, 基准测试函数必须以Benchmark开头, 接受一个指向testing.B类型的指针作为唯一参...

2018-09-09 17:57:55 23818 1

原创 Go语言之defer

defer关键字defer和go一样都是Go语言提供的关键字. defer用于资源的释放, 会在函数返回之前进行调用. 要使用好defer最重要的是要理解return执行过程:先给返回值赋值, 然后调用defer表达式, 最后才是返回到调用函数中. 理解了这句话, 关于defer的疑惑都能迎刃而解了.例子例一:func f1() (result int) { defer fu...

2018-09-08 11:17:57 399

原创 缓存常见问题

2018-07-10 13:59:38 186

原创 eclipse设置javascript颜色

eclipse设置velocity颜色

2017-07-13 19:53:56 5760

原创 设计模式

观察者模式代理模式虚拟代理远程代理调用保护代理调停者模式

2017-04-09 17:09:40 289

基于大规模RDF图的关键字查询

该ppt中详细讲述了在大规模RDF图处理时的过程。

2014-06-16

基于多种转换语义的图数据库查询

该ppt详细讲解了vldb2014年的一篇与图数据库查询相关的文章,该文章设计的图查询支持多种转换语义,降低了一般用户查询图数据库的难度。

2014-05-23

强连通分量的Kosaraju算法实现

1. 开发环境:vs2010,语言:c++。 2. 用Kosaraju算法实现了强连通分量的求解。其中data中包含的GoolNodes测试集为Google提供的网页之间的连接经转化而来,每一个结点均代表一个网页。 3. 缺点:为了使用以前的CGraph类,强行添加了结点文件,其中第一行为结点总数,其他行均为三列:第一列表示网页编号,后两列不代表任何信息。 边文件中,每行表示一条有向边,第三列权重不表示任何信息。

2014-04-14

动态规划的ppt

该ppt讲解了算法导论的第十五章动态规划部分。主要讲述了1.动态规划与分治的区别;2. 通过三个例子棍子切割问题、矩阵链相乘问题和最长公共子序列问题详细描述了动态规划的基本步骤;3.最后做了一个最长单调递增子序列的练习。

2014-03-24

QuadTree 2.0 C++

为QuadTree的第二个版本,与第一个版本的主要区别为该版本中的叶子可以包含多个数据点,从而避免了内存的搞消耗。详细实验结果见:http://blog.csdn.net/woniu317/article/details/19424587

2014-02-18

QuadTree c++实现

该代码实现了QuadTree的创建于简单的查询功能 并以真实数据集(City of Oldenburg OL Road Network)共6105个节点进行了简单的测试 该数据集(sortData txt)经过处理按照第一列(精度)从小到大进行了排序

2014-02-18

一个变量实现多重循环

该ppt主要讲述了编程之美的中国象棋问题,最终总结出用一个变量实现多层循环的公式。

2013-12-10

象棋将帅问题-编程之美

用c++实现了CChinaChess类,该类包含了五个方法,除方法5外每个方法对应一种实现思路。方法5实现了用一个变量实现三层循环。

2013-12-09

八皇后问题-代码

八皇后问题的回溯算法的实现,实现语言为c++

2013-11-25

visual assist x for vs2010

该软件为vs2010编程助手,内有详细的安装及破解方法。

2013-08-16

优先队列之二叉堆、d叉堆、左式堆、斜堆、二项堆

本ppt讲解了优先队列的五种实现方式,即二叉堆、d叉堆、左式堆、斜堆、二项堆。

2012-12-06

小根堆(二叉堆)实现

用模板类实现了小根堆,并在woniu_heap这个文件里的代码对小根堆进行了测试。其中push为插入一个元素到小根堆中,pop为删除小根堆的堆顶元素,top为取出根顶元素。

2012-12-04

连连看小游戏

练练看小游戏共大家一块学习研究,其中附带了c++源代码。

2012-11-07

空空如也

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

TA关注的人

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