随笔分类 - Golang
Google开源的编程语言,具有与生俱来的高并发处理能力,占用资源少,简洁高效
摘要:http和https的区别
1. 是否加密: HTTPS 是 HTTP 协议的更加安全的版本,通过使用SSL/TLS进行加密传输的数据;
2. 连接方式不同: HTTP(三次握手)和 HTTPS (三次握手+数字证书)连接方式不一样;
3. 端口不同: HTTP 默认的端口是 80和 HTTPS 默认端口是 443
阅读全文
摘要:gin中*gin.Context的JSON方法的使用 首先看这个方法,接收一个int类型的状态码和一个任意类型的obj: 第二个参数传结构体,代码示例: package main import ( "github.com/gin-gonic/gin" ) type msg struct { Name
阅读全文
摘要:引入gin go get -u -v github.com/gin-gonic/gin Restful风格示例 package main import ( "github.com/gin-gonic/gin" ) func getBook(c *gin.Context){ c.JSON(200, g
阅读全文
摘要:func maxProfit(prices []int) int { var max = 0 for i:=1;i<len(prices);i++{ if prices[i]>prices[i-1]{//只要后一天比前一天有利可图 max += prices[i]-prices[i-1]//就在前一
阅读全文
摘要:动态规划+sort.SearchInts() func lengthOfLIS(nums []int) int { dp := []int{} for _, num := range nums { i := sort.SearchInts(dp, num) //min_index if i == l
阅读全文
摘要:直接遍历链表,使用set做标记位(标记是否已经到达过) /** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ type void struct{} fun
阅读全文
摘要:使用切片slice实现 type MinStack struct { stack []int minIndex int length int } /** initialize your data structure here. */ func Constructor() MinStack { ret
阅读全文
摘要:func maxProfit(prices []int) int { // 最大利润=第i天卖出-最小买入 var min_input = prices[0]//默认第0天为最小买入 var max_profit = 0//最大利润 for i:=1;i<len(prices);i++{ min_i
阅读全文
摘要:/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ var res [][]int func levelOrder(
阅读全文
摘要:func addStrings(num1 string, num2 string) string { add := 0 //进位标志 ans := ""//最终字符串 var i = len(num1)-1//从末尾开始 var j = len(num2)-1//从末尾开始 for i >= 0 |
阅读全文
摘要:func maxSubArray(nums []int) int { var res = nums[0] // 默认第一个是最大和 var sum = 0 // sum为nums[i]前面的元素的最大和 for i:=0;i<len(nums);i++{ sum = max(sum + nums[i
阅读全文
摘要:func sortArray(nums []int) []int { quickSort(nums, 0, len(nums)-1) return nums } func quickSort(nums []int, low, high int){ if low<high{ var pivot = p
阅读全文
摘要:func lengthOfLongestSubstring(s string)int{ var length = 0 var max = 0 var start = 0//慢指针 var end = 0//快指针 for end<len(s){ tmpChar:=s[end] for i:=star
阅读全文
摘要:一般思路 先遍历A链表,记录所有点 再遍历B链表,若已经在记录中存在则返回该节点. /** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ type voi
阅读全文
摘要:/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ func mergeTwoLists(l1 *ListNode, l2 *ListNode) *Li
阅读全文
摘要:给定一些正数(代表长度)组成的数组arr,返回由其中三个 长度组成的面积不为0的三角形的最大周长。 如果不能组成三角形,返回0. 三角形满足条件:a+b>c且a+c>b且b+c>a 贪心算法 先排序(升序) 从后往前选三个数,看是否满足三角形条件 package main import ( "fmt
阅读全文
摘要:在柠檬水摊上,每一杯柠檬水的售价为5美元。 顾客排队购买,一次购买一杯。 每一个顾客只买一杯柠檬水,然后向你付5美元、10美元或20美元。 必须给每个顾客正确找零。 **注意:**一开始你手头并没有任何零钱。 如果你能给每位顾客正确找零,则返回true,否则返回false。 贪心算法 顾客给你5块,
阅读全文
摘要:给定一个未经排序的整数数组,找到最长且连续递增的子序列,并返回该序列的长度。 如: [1,2,3,2,3,4,3,4,5,6,7] 返回5. 贪心算法 func findLength(nums []int)int{ var start = 0 var maxLength = 0 for i:=1;i
阅读全文
摘要:给定一个二叉树,找出其最小深度。 最小深度是从根节点到叶子节点经过的最短路径上的节点数量。 如: 则返回3. 广度优先 func minDepth2(root *TreeNode)int{ if root==nil{//第一次进入时根节点的判断 return 0 } root.deep = 1 va
阅读全文
摘要:给定一个二叉树,找出其最小深度。 最小深度是从根节点到叶子节点经过的最短路径上的节点数量。 如: 则返回3. 深度优先 package main import ( "fmt" "math" ) type TreeNode struct{ val int left *TreeNode right *T
阅读全文