
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 · 436 阅读 · 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 · 322 阅读 · 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 · 256 阅读 · 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 · 735 阅读 · 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 · 477 阅读 · 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 · 275 阅读 · 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 · 945 阅读 · 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 · 255 阅读 · 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 · 302 阅读 · 0 评论