- 博客(20)
- 收藏
- 关注
原创 linux命令总结
linux提取日志文件中字符echo ‘errno[100025]’|sed ‘s/errno[([0-9]*)]/\1/g’grep -P ‘errno[\d+]’ -o mcp-strategy.log|sed ‘s/errno[([0-9]*)]/\1/g’-P参数表明要应用正则表达式-o表示只输出匹配的字符串,这样我们就可以把正则匹配到的结果拿到了。grep -P ‘errno[\d+]’ -o mcp-strategy.log|head -3|sed ‘s/errno[([0-9]*)]
2020-11-24 19:49:00
2686
原创 golang按列写入csv文件
func main() {f, err := os.Create(“test.csv”) //创建文件if err != nil {panic(err)}defer f.Close()f.WriteString("\xEF\xBB\xBF") // 写入UTF-8 BOMw := csv.NewWriter(f) //创建一个新的写入文件流cdkeys := make([][]string, 1000)for i := 0; i < 1000; i++ { cdkeys[i
2020-06-15 20:11:28
1218
原创 golang优化
Go GC 影响● 有 runtime.newobject ,就会对 gc 带来压力 ● 创建对象不仅仅只有在分配时会有性能损耗,实际上扫描回收时也会带来性能损耗。● STW 阶段需要等调度完全停止,有性能损耗。阶段 说明 状态GCMark 标记准备阶段,为并发标记做准备工作,启用写屏障 STWGCMark 扫描标记阶段,与赋值器并发执行 并发GCMarkTermination 标记终止阶段,保证一个周期内标记任务完成,关闭写屏障 STWGCoff 内存清扫阶段,将需要回收的内存归还到堆中 并
2020-05-29 16:38:29
258
原创 golang channel总结
一个channel有发送和接受两个主要操作,都是通信行为。一个发送语句将一个值从一个goroutine通过channel发送到另一个执行接收操作的goroutine。发送和接收两个操作都是用<-运算符。在发送语句中,<-运算符分割channel和要发送的值。在接收语句中,<-运算符写在channel对象之前。一个不使用接收结果的接收操作也是合法的。ch <- x // a send statementx = <-ch // a receive expressio
2020-05-12 16:24:10
158
原创 搜索
leetcode_200_岛屿数量给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:11110110101100000000输出: 1新的点没有探索过,或者可以达到地图上的位置leetcode上小哥哥的答案,是一个一看他答案就秒懂的大佬,崇拜思路一:深度优先遍历DFS目标是找到矩阵中 “岛屿的数量” ,上下
2020-05-11 00:38:16
299
原创 鸽巢原理算法题
面试题03. 数组中重复的数字找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3分析: 原地hash法鸽巢原理,因为出现的元素值 < nums.size(); 所以我们可以将见到的元素 放到索引的位置,如果交换时,发现索引处已存在该元素,则重复 O(N) 空间
2020-05-09 23:41:21
275
原创 二分查找
leetcode33. 搜索旋转排序数组假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2], target = 0输出: 4分析:func search(nums [
2020-05-09 21:19:23
74
原创 redis秒杀系统
创建秒杀订单库存减一update stock=stock-1此时mcsql加行锁,只有一个线程能更新成功单机mysql只有几百并发先减库存,再创建订单减库存:redis.set的库存用redis.decr 原子减库存,redis单线程模型如果库存减为0了,可以直接返回商品已售完创建订单问题:1、redis中库存已经减完了,但是数据库减库存时失败,在catch时再把redi...
2020-05-06 23:31:06
254
原创 栈与队列
用队列实现栈leetcode 225 用队列实现栈使用队列实现栈的下列操作:push(x) – 元素 x 入栈pop() – 移除栈顶元素top() – 获取栈顶元素empty() – 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。你所使用的语言也...
2020-04-08 00:50:46
219
原创 链表
leetcode2给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 ->...
2020-03-31 23:30:53
157
原创 Mysql
从转载http://svip.iocoder.cn/MySQL/Interview/什么是mysql的分区表?所有数据还在一个表中,但物理存储根据一定的规则放在不同的文件中。这个是mysql支持的功能,业务rd代码无需改动。为什么大部分互联网还是更多的选择自己分库分表来水平扩展呢?1)分区表,分区键设计不太灵活,如果不走分区键,很容易出现全表锁2)一旦数据量并发量上来,如果在分区表实施关...
2020-03-31 03:02:25
212
原创 二叉树
二叉树的前序遍历递归法func preorderTraversal(root *TreeNode) { res:=[]int{} preorderTraversal1(root,&res) return res}func preorderTraversal1(root *TreeNode,res *[]int){ if root!...
2020-03-30 02:18:37
86
原创 递归回溯
golang的为运算法实现func subsets(nums []int) [][]int { allSets := 1 << uint(len(nums)) //比如3个元素的子集有2的3次方个 var result [][]int for i := 0; i < allSets; i++ { var item []int temp := ...
2020-03-30 01:44:21
117
原创 go语言实战读书笔记之 goroutine
go语言并发: 能让某个函数独立于其他函数运行的能力当一个函数创建为goroutine时,go将它视为一个独立的工作单元,这个工作单元会被调度到可用的逻辑处理器上执行go语言运行时调度器: 能管理被创建的所有goroutine并为其分配执行时间,调度器在操作系统之上,将操作系统的线程和语言运行时的逻辑处理器绑定,并在逻辑处理器上运行goroutinego语言的并发同步模型: 叫通信顺序进程...
2020-03-28 22:40:45
155
原创 linux命令总结
linux命令总结文本提取awk -F ‘,’ ‘{print $(NF-2)}’ logs.txtawk begin{RS=EOF}’{gsub(/\n/," ");print}’ uid.txt以冒号分割,取第二个字段awk -F ‘:’ ‘{print $2}’ sd.txt统计文本的行数文件test1.txt有17行方法一:awk ‘{print NR}’ test1....
2020-03-28 21:14:03
180
原创 动态规划总结
参考文章:https://zhuanlan.zhihu.com/p/915829091、爬楼梯问题(leetcode 70题)假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2...
2020-03-24 17:37:50
101
原创 redis面试题
redis的hash是如何实现的redis集群的主从数据同步redis集群怎样做到高可用redis的持久化方式为什么不用redis做专门的持久化数据库存储如何使用 Redis 实现分布式锁Redis LRU 算法Redis 的线程模型Redis 有哪几种数据“淘汰”策略Redis 有几种数据“过期”策略为什么 Redis 单线程模型也能效率这么高Redis 是单线程的,如何提...
2020-03-02 02:09:08
179
转载 计算机网络高频面试题
什么是 TCP 三次握手?三次握手,简单来说,就是:TCP 三次握手的漫画发送方:我要和你建立链接?接收方:你真的要和我建立链接么?发送方:我真的要和你建立链接,成功。详细来说,步骤如下:第一次握手:Client 将标志位 SYN=1 ,随机产生一个值 seq=J ,并将该数据包发送给 Server 。此时,Client 进入SYN_SENT 状态,等待 Server 确认。第二...
2020-03-01 13:02:57
218
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人