- 博客(15)
- 收藏
- 关注
原创 lee122买卖股票的最佳时机 I、II golang
买卖股票的最佳时机 I/*Question description:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, 因为卖出价格
2020-06-11 19:01:12 240
原创 golang之leetcode33 旋转数组求值实现
题目:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。求解思路:由题可知,有序,不重复数组,查询数组中等于某值的index, 复杂度为O(log n) ,联想到了二分查找法。众所周知,二分查找必须是在有序数据里面进行。但
2020-06-04 18:52:23 260
原创 golang之栈实现
stack API为压栈、弹栈、栈是否为空、查看栈顶元素(peek),查看栈中数据的数量、Flush(清空栈)栈的实现底层数据结构可以使用数组也可以使用链表:数组实现栈和链表实现的栈的插入、查询、拿取数据的复杂度都为1。数组栈的代码package stackimport "fmt"/** 数组栈,每次插入数据,即压栈,都放入数组的最后一个元素,取的时候,从最后一个元素取,复杂度都是O(1).* Author:sxy*/type Stack struct { data []int
2020-06-03 00:15:39 621
原创 golang之给定一个链表,删除链表的倒数第 n 个节点
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点,这个n保证是有效的,有两种方法:1)第一种方法: 遍历两遍先遍历这个链表,假设得到了这个链表的长度是L, 那么我们要删除的节点的index即是L-n+1;再次遍历这个链表,找到要删除节点的前一个节点,删除这个节点就好了。2)第二种方法:遍历一遍采用两个指针,因为要删除的是这个链表倒数n个节点,先让一个指针走n个位置,之后再用一个指针,从头开始和前面的指针一起走;当前面的指针走到最后一个节点,后走的指针即是要删除的节点的前一个位置,删
2020-06-01 18:15:45 554
原创 golang之链表环的检测实现
判断链表中是否有环package other_pratice/**** 判断链表中是否有环** Author: sxy */// 两种解发// 1.快、慢指针法:// 快指针一次走两格,慢指针一次走一格;如果不存在环,快指针指向nil时,// 表示已经遍历完毕;如果存在环,则这两个指针会相遇.func LinkedLoopDetection(node *NodeList) bool { if node == nil || node.next == nil { re
2020-05-29 23:10:07 349
原创 基于快排求无序数组的第K大元素
package other_pratice/*** 怎么最快的求无序数组的第K大元素。** Author:sxy*/// 我们知道快排的排序是从大到小,还是从小到大取决于分区那个函数是如何写的,本题是在数组中寻找第几大元素// 所以需要在数组的大小的顺序要是从大到小// 快速排序每次排序完找的 基准点即是第几大元素。// 如果 如果count==基准点+1;则基准点即是第几大元素; 如果count<基准点+1,在左边找; 如果count>基准点+1大于在右边找。
2020-05-27 23:00:13 156
原创 golang之快排实现(最傻的和原地排序)
golang之快排实现(最傻的和原地排序)package sort/*** 最傻的QuikSort和基于原地的QuikSort** Author:sxy */func QuickSort(arr []int) { quickSort(arr, 0, len(arr)-1)}// 基于分治思想,即需要递归,递归退出条件,当start>=end,就退出。// 递推公式,即每次取一个临界点,小于这个临界点,放左边,大于这个临界点的放数组右边。// partition函数每次
2020-05-27 22:57:51 280
原创 golang之反转单链表实现
1.给定一个链表,将链表的值进行反转???有如下两种方式:1.遍历法2.递归法代码实现如下package other_praticeimport ( "fmt" "strconv")type ListNode struct { next *ListNode val int}func NewListNode(val int) *ListNode { return &ListNode{next: nil, val: val}}// 递归的方式// 递归的
2020-05-26 23:56:23 686
原创 golang之单链表和双链表实现
实现单链表、双向链表,增删操作单链表实现package linkedListimport "fmt"/**** 实现单链表(可以完成增,删,查)* 增加分为:在指定的节点前增加,在指定的节点后增加,在链表的尾部/头部插入节点;* 删除分为:删除指定的节点;* Author: sxy */// ps: 对于循环单链表而言,只需要将尾节点指向首节点即可。type Node struct { next *Node val int}type LinkedList struc
2020-05-26 18:08:49 270
原创 golang之约瑟夫环实现
1.约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知 n 个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为 k 的人开始报数,数到 m 的那个人出圈;他的下一个人又从 1 开始报数,数到 m 的那个人又出圈;依此规律重复下去,直到剩余最后一个胜利者。package other_praticetype Child struct { next *Child val int}func NewChild(val int) *Child { return &Child{ne
2020-05-25 23:18:33 317
原创 数组之golang实现(1)
1.实现一个支持动态扩容的数组满足的功能:增(从指定位置插入,从尾部插入)、删,查。因为数组需要保证数据是连续的,所以当删除,和插入时,需要做数据搬移。相关实现代码如下:package arrayimport ( "errors" "fmt")/**** 实现一个大小固定的有序数组,支持动态增删改操作。* Author: sxy*/type array struct { data []int length int // 数组目前存放的数据长度,已经初始化的数据。}
2020-05-25 17:55:44 223
原创 Controlling Access to the Kubernetes API 和 dynamic Admission control
我们通过 kubectl、或者自己写程序,是可以调用apiserver的api接口的,但是我这里有两个问题:1)访问apiserver的时候,我们需要做哪些事情?apiserver对访问的用户有没有什么需求?首先,需要说明的是,在k8s中可以使用两种用户来访问apiserver,分别是普通用户和k8s的service account. 对于普通用户来说,他只是对于外部来说的,并不是k8s的对象,也不会在k8s中部署。而对于普通用户来说,会给这个用户绑定指定证书的权限,之后普通用户既可以访问apiserv
2020-05-24 00:39:14 376
原创 从网络命令空间netns,来说明docker brige模式的通信原理
两个netns之间的通信① netns的概念:netns是linux中一个独立的网络栈,每个ns都有自己的网卡、loopback设备、路由表、iptables。有了这些,一个进程就可以和外部进行通信② netns之间通信需要用到的设备:vethpair设备:是一种必须成对出现设备,两张虚拟网卡,分别置于两端,一端发包,另一端会收包;网桥:交换机的角色③ 具体方式:两个netns之间通信,可以在两个netns下分别放一个vethpair设备;多个netns之间通信,借助网桥来做交换机,将
2020-05-11 23:29:20 863
原创 k8s上部署traefik
traefik部署this section shows how to deploy traefik on kubernetes.官方主要定义了两种部署模式,分别是Daemonset和Deployment,它们之间的区别主要是:相比一个节点只部署一个daemonset的traefik,采用deployment会更易于伸缩和扩展;Daemonset可以利用taints和tolerations...
2019-04-23 18:53:57 1181
原创 k8s之volumn详解以及 k8s支持的数据持久化方案和使用方式
文章目录为什么要做共享存储?k8s支持的共享存储方案以及各种方案的差异k8s支持的存储类型宿主机类emptyDirhostpath集群类存储configmap、secret云存储AWS、AzureFile分布式存储ceph 、glusterfsnfs高效便捷的使用共享存储PV和PVCPVpvcPV 和PVC的生命周期storage class我们知道,一个运行中的容器,默认情况下,对文件系统的写...
2018-12-20 16:59:06 6125 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人