![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
blinkbean
不知名CRUD选手。
展开
-
LeetCode——排序算法
快排 利用数组拼接完成 func quickSort(arr []int, start, end int) []int { if start < end { mid := arr[start] i := start j := end for i < j { for arr[j] >= mid && i < j { ...原创 2020-04-19 23:43:48 · 380 阅读 · 0 评论 -
LeetCode——最长不重复子串
func lengthOfLongestSubstring(s string) int { arr := strings.Split(s, "") tempArr := []string{} max := 0 curr := 0 for _, val := range arr { index, contain := contains(tempArr, val) if !cont...原创 2020-04-19 23:20:23 · 271 阅读 · 0 评论 -
LeetCode——二叉树遍历
type treeNode struct { data int left *treeNode right *treeNode } 层序 func treeLevel(node *treeNode) { arr := make([]*treeNode, 0) startIndex := 0 arr = append(arr, node) for len(arr)-startIn...原创 2020-04-19 23:17:14 · 213 阅读 · 0 评论 -
LeetCode——有序数组取交集
func interArr(arr1, arr2 []int) []int { resArr := make([]int, 0) if len(arr1) == 0 || len(arr2) == 0 { return resArr } arr1Index := 0 arr2Index := 0 for arr1Index < len(arr1) && ar...原创 2020-04-19 23:12:40 · 674 阅读 · 0 评论 -
LeetCode——旋转二分
什么是数组旋转 [1,2,3,4,5,6,7,8,9] 旋转 [5,6,7,8,9,1,2,3,4] 上面这个数组为例:其实就是把5之前的数,有序的移到数组右边。 解题思路 二分法 每次二分之后都能得到一个有序的数组和一个旋转的数组(又得到了旋转数组,是不是似曾相识)。 每次取中点的值和最左边的值判断,即可得到左边有序还是右边有序。 与普通二分不同的是,每次都需要判断目标值是否在有序的数组中...原创 2020-04-19 23:06:50 · 403 阅读 · 1 评论 -
LeetCode——单向链表相关
// 链表翻转 type Node struct { data int next *Node } type NodeList struct { head *Node } // 头部增加节点 func (n *NodeList) add(val int) { node := Node{data: val} if n.head == nil { n.head = &node ...原创 2020-04-19 23:05:22 · 228 阅读 · 0 评论 -
LeetCode——最长子序列和
找出给定数组中最长子序列的和 // 先算出每 func Max(x, y int)int{ if x<y{ return x } return y } func MaxSubSum(arr []int, n int) int { res := make([]int, n) res[0] = arr[0] maxs := arr[0] for i := 1; i < n...原创 2020-04-19 23:02:04 · 885 阅读 · 0 评论 -
LeetCode——卖股票
func getProfit(arr []int, start, end int) int { min := arr[start] profit := 0 for i := start; i < end; i++ { profit = Max(arr[i]-min, profit) min = Min(min, arr[1]) } return profit } // 分...原创 2020-04-19 22:41:51 · 207 阅读 · 0 评论 -
LeetCode——接雨水
利用两个数组记录每个位置,左边和右边的最大值。 func Min(x, y int) int { if x < y { return x } return y } func Max(x, y int) int { if x < y { return y } return x } func receiveRain(arr []int) int { n := le...原创 2020-04-19 22:57:16 · 253 阅读 · 0 评论