算法
LettyLin
好好生活OVO
展开
-
【算法】关于递归函数返回值的理解。
本次代码用最大子数组问题(可参考算法导论, 即寻找数组arr中和最大的非空连续子数组,时间复杂度为O(nlogn)。package mainfunc findmaxcrossarr(arr []int, low, high, mid int) (int, int, int) { leftsum, rightsum := 0, 0 leftindex, rightindex, temp...原创 2018-07-19 18:54:58 · 8611 阅读 · 0 评论 -
【算法】Golang二维数组横纵切片问题
二维数组切片初始化:test := [][]int{ {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}, } n := len(test) // rowsnum m := len(test[0]) // colsnum二维数组输出:for i := 0; i < len(test...原创 2018-08-05 11:35:52 · 4785 阅读 · 4 评论 -
【算法】zigzag字符串转换
转换成zigzag算法需要遍历字符串,构建n个字符串数组(slice)作为每行内容。func Convert(s string, numrows int) string { if numrows == 1 { return s } zigzagstr := make([]string, numrows) j := 0 up := false for i := 0; i &...原创 2018-08-04 14:19:23 · 617 阅读 · 0 评论 -
【递归】递归式求解
首先介绍一些符号及其概念。Θ:渐近紧确界定义:Θ(g(n)) = { f(n):存在正常量c1,c2和n0,使得对所有n≥n0,有0 ≤ c1g(n) ≤ f(n) ≤ c2g(n)}也就是说,当n超过某个值时,f(n)夹在c1g(n)和c2g(n)之间。比如我们证明2n^2-3n的渐近确界时Θ(n^2):c1n^2<<2n^2-3n<<c2n^2,求解不等...原创 2018-08-01 18:53:55 · 915 阅读 · 0 评论 -
【算法】求解最大回文子字符串
第一种方法:暴力求解,时间复杂度O(n^3)两个嵌套循环遍历字符串中的所有子字符串,另一个循环用来判断当前子字符串是否为回文。func Longestpalindromicstring_On3(s string) string { length := 0 var str string for i := 0; i < len(s); i++ { for j := i; j ...原创 2018-08-01 19:10:50 · 730 阅读 · 0 评论