Golang-常用算法

快速排序

func QuickSort(sort []int) []int {
	if len(sort) <= 1 {
		return sort
	}
	low := make([]int, 0, 0)
	mid := make([]int, 0, 0)
	high := make([]int, 0, 0)
	tag := sort[0]
	mid = append(mid, tag)
	for i := 1; i < len(sort); i++ {
		if sort[i] < tag {
			low = append(low, sort[i])
		} else if sort[i] > tag {
			high = append(high, sort[i])
		} else {
			mid = append(mid, sort[i])
		}
	}
	low, high = QuickSort(low), QuickSort(high)
	return append(append(low, mid...), high...)
}

反转字符串包含数字中英文

func ReveverString(strs string) string {
	s := []rune(strs)
	for i, j := 0, len(s)-1; i < j; i, j = i+1, j-1 {
		s[i], s[j] = s[j], s[i]
	}
	return string(s)
}

反转链表

type ListNode struct {
	Val  int
	Next *ListNode
}

func ReverseList(head *ListNode) *ListNode {
	cur := head
	var pre *ListNode = nil
	for cur != nil {
		pre, cur, cur.Next = cur, cur.Next, pre
	}
	return pre
}

无重复最长字符串长度

func LengthOfLongSubString(s string) int {
	start := 0
	end := 0
	for i := 0; i < len(s); i++ {
		index := strings.Index(s[start:i], string(s[i]))
		if index == -1 && (i+1)>end {
			end = i+1
		}else {
			start += index+1
			end += index+1
		}
	}
	return end-start
}
posted @   白黑黑  阅读(72)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示