- 博客(14)
- 收藏
- 关注
原创 kubernetes-etcd 原理
基本的key-value存储监听(watch)机制key的过期及续约机制,用于监控和服务发现原子CAS(compare and swap)和CAD(compare and delete),用于分布式锁和leader选举。
2023-09-15 16:09:53
382
原创 数的三次方根 【AcWing】
数的三次方根 【AcWing】 用二分查找算法求数的三次方根。 C语言语法补充: 格式化 %lf , %f 用来输入输出浮点类型。 %.6f用于确保结果小数点后留6位。 #include<stdio.h> #define N 10010 double n, mid, target; int main() { scanf("%lf", &target); double l = -1000, r = 1000; // 循环条件: 当r与l的差小于等于10的-8次方
2022-02-07 11:06:16
1001
原创 数的范围【AcWing】
数的范围【AcWing】 采用二分查找算法求有序序列中某个数的左右边界, 求左边界时mid下取整,mid下标上的元素与目标值相等时,处理方式等同于比目标值大的元素。 求右边界时mid上取整,mid下标上的元素与目标值相等时,处理方式等同于比目标值小的元素。 #include<stdio.h> #define N 100010 int n, m, nums[N], x; // 左边界 mid 下取整 void left(int x) { int l = 0, r = n - 1;
2022-02-07 10:35:13
485
原创 逆序对的数量【AcWing】
逆序对的数量【AcWing】 本算法用归并排序的方法,间接求出序列中逆序对的数量。其思路为二路归并时,如果第二路序列中存在比第一路序列小的数,则此数为逆序的数,具体逆序数量为此时对应的第一路中的所有数的个数。第一路中元素个数的计算公式为 : temp = mid - i + 1; #include<stdio.h> #define N 100010 typedef long long LL; int n, nums[N]; LL reverseNum(int nums[], int l,
2022-02-06 16:30:06
1109
原创 归并排序【AcWing】
适合强数据类型的归并排序算法 #include<stdio.h> #define N 100010 int n, nums[N]; void merge_sort(int nums[], int l, int r) { if(l >= r) return; int mid = l + r >> 1, i = l, j = mid + 1, temp[r - l], k = 0; merge_sort(nums, i, mid); merge_
2022-01-23 11:11:06
360
原创 快速排序 【AcWing】
适合Accept的快速排序代码,适合任意强数据。 #include<stdio.h> #define N 100010 int n, temp, nums[N]; void swap(int i, int j) { temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; } void quick_sort(int nums[], int l, int r) { if(l >= r) return;
2022-01-22 11:20:42
408
原创 go 反射应用
项目场景: 要对数个数据库表中的数据进行加密/解密,需针对每个数据表建立结构体,针对不同的结构体写不同的解密方法,此过程十分繁琐,但必不可少。 解决方案: 通过使用反射,对结构体进行动态的获取属性,修改属性等操作可大大减少代码量。 package decode import ( "DecodeService/util" "fmt" "reflect" "strconv" "strings" ) const tag = "json" func DeCommon(o interface{})
2021-08-16 15:50:52
237
5
原创 使用openssl解密des-ede3(go语言)
使用openssl解密des-ede3(go语言) 项目场景: 需解密数据库中通过des-ede3加密的字符串 解决方案: 通过查找资料找到如下工具: https://github.com/spacemonkeygo/openssl 附代码: func decodeDesEDE3(original string, key []byte) string { iv := []byte(nil) cipher, err := GetCipherByNid(NID_des_ede3) if err !=
2021-08-10 11:52:49
1140
原创 Go mod 入门
Go mod 入门 一、why use go mod 1、go mod出现之前,遇到的问题: 1)、代码开发必须在 $GOPATH 的src目录下,在别处新建项目将无法编译运行。 2)、对于项目中需要引入的包,必须手动下载,手动维护。 3)、依赖包没有版本号,对于进行过Java开发并使用过maven的开发人员将会感到十分不适。 2、go mod 是如何解决的? 在golang 1.11以后,go开始支持go mod。go mod 引入了模块的概念,模块是相关Go包的集合。modules是源代码交换和版本
2021-07-27 17:10:53
365
原创 Form表单映射到 Go 结构体
Form表单映射到 Go 结构体 一、gorilla/schema gorilla/schema可将前端传来的form表单自动映射到go语言的结构体上。可简化Golang后端对form表单各个属性值的获取,支持的参数类型如下: bool float variants (float32, float64) int variants (int, int8, int16, int32, int64) string uint variants (uint, uint8, uint16, uint32, uin
2021-07-24 14:50:00
2387
1
原创 生产者消费者模型实现
生产者消费者模型 public class Main{ public static void main(String[] args) { EventStore eventStore = new EventStore(); Producer producer = new Producer(eventStore); Consumer cons...
2019-08-12 11:36:20
237
原创 堆排序详解
堆排序 /** * 对指定结点进行heapIfy的方法 * @param tree 堆的数组 * @param i 对第几个结点进行heapIfy */ public static void heapIfy(int[] tree, int n, int i) { if (i >= n) { return...
2019-04-03 19:59:50
214
原创 git常用命令速查
git常用命令速查创建版本库修改和提交查看提交历史撤销分支与标签合并远程操作 创建版本库 $ git clone <url> #克隆远程版本仓库 $ git init #初始化本地版本库 修改和提交 $ git status #查看状态 $ git diff #查看变更内容 $ git add . #跟...
2019-04-01 19:43:12
225
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅