![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
algorithm
Grayan
尽情地享受好时光吧,我们不会再在如此年轻的时候相遇了。
展开
-
golang_算法:字符串反转且转换大小写
package mainimport "fmt"func reverse(str string) string { if len(str) <= 1 { return str } sli := make([]byte, 0) for _, v := range str { sli = append(sli, byte(v)) } for i := 0; i &l...原创 2020-03-27 16:35:44 · 646 阅读 · 0 评论 -
golang_算法:单链表的反转
type Node struct { Next *Node Value interface{}}//反转单链表//pre cur cur.Next//nil->1->2->3//1->nil,2->3//2->1->nil,3//3->2->1->nilfunc ReverseList(head *Node) *N...原创 2019-04-27 20:26:59 · 1567 阅读 · 0 评论 -
算法: 去除大数据文件的重复行
去除大数据文件的重复行解决思路:求出每行数据的hash,存入map的key中;每得到一行数据的hash,利用map判断该key是否有值;有则过滤,无则添加到map中。...原创 2019-04-18 15:37:16 · 1147 阅读 · 0 评论 -
golang_算法:快速排序算法
package mainimport "fmt"//快速排序的基本思想://通过一趟排序将数据分割成独立的两部分,//其中一部分的所有数据都比另外一部分的所有数据都要小,//然后再按照此方法对这两部分数据分别进行快速排序,//整个过程可以递归进行,知道整个数据变成有序序列。func quickSort(arr []int, start, end int) { if start ...原创 2019-04-11 22:41:08 · 254 阅读 · 0 评论 -
golang_算法:leetcode_动态规划02-买卖股票的最佳时机
package mainimport ( "fmt" "math")//一次遍历func maxProfit(prices []int) int { minNum := math.MaxInt32 maxPro := 0 for _, value := range prices { if value < minNum { minNum = value }...原创 2019-04-03 21:32:44 · 535 阅读 · 0 评论 -
golang_算法: leetcode_动态规划01-爬楼梯
package mainimport "fmt"//设计算法:/* n: f(n) f(1) = 1 f(2) = 2 (1+1, 2) f(3) = 3 (1+1+1, 1+2, 2+1) ... // 爬到第n层, 可以先走一层,再走剩下的n-1层; 或者先走2层,再走剩下的n-2层, 一共两种方法 // 所以可以得到递归方程:其...原创 2019-03-25 18:24:46 · 502 阅读 · 0 评论 -
golang_算法: leetcode_排序与搜索01-合并两个有序数组
package mainimport ( "fmt")func merge(nums1 []int, m int, nums2 []int, n int) { fmt.Println("nums1 =",nums1) fmt.Println("nums2 =",nums2) if m == 0 { copy(nums1,nums2) } if n == 0 { re...原创 2019-03-25 15:07:45 · 212 阅读 · 0 评论 -
golang_算法: leetcode_数组07-加一
package mainimport "fmt"//设计算法://99->1,0,0 999->1,0,0,0//从后往前遍历数组,如果末尾的数字为9,赋值为0,负责++//如果首端的数字为0,插入[]int{1}至最前端func plusOne(digits []int) []int { n := len(digits) for i := n - 1; i ...原创 2019-03-01 22:13:31 · 153 阅读 · 0 评论 -
golang_算法: leetcode_数组05-只出现一次的数字
//设计算法://1.//1) 设置map[int]bool,默认的bool是false//注意有2种键值对,要分清://nums是数组,遍历中的键值对结构是0-值1,1-值2...//m是一个map,对应的是值1-true,值2-false...//2)进行判断所有值的全改成true,如果再遇到相同的v时,会执行m[v]==true的语句,m[v]会变为falsefunc s...原创 2019-02-25 21:11:00 · 416 阅读 · 0 评论 -
golang_算法: leetcode_数组04-存在重复
import "fmt"//1.func containsDuplicate1(nums []int) bool { for i := 0; i < len(nums); i++ { for j := i + 1; j < len(nums); j++ { if nums[i] == nums[j] { return true } } } ret...原创 2019-02-24 21:03:43 · 788 阅读 · 0 评论 -
golang_算法: leetcode_数组03-旋转数组
import "fmt"//空间复杂度为 O(1) ,不能使用其它数组////设计算法:////1.新建空间,将后k位数截取,后k位和前面的数字分别添加到新空间//func rotate1(nums []int, k int) {// var arr []int// l := len(nums)// arr = append(nums[(l-k):], nums[:l-k]...)...原创 2019-02-24 21:01:47 · 314 阅读 · 0 评论 -
golang算法_冒泡排序算法
冒泡排序算法1.分析问题: 挨着的2个元素进行比较,最大的移动到了最后.2.设计算法:1)设置数组,2)第一次排序:索引0至len(数组)-1左右元素进行比较,最大的数排在最后第二次排序:索引0至len(数组)-2左右元素进行比较,最大的2个数从小到大排在最后第n次排序: 索引0至len(数组)-n左右元素进行比较,最大的n个数从小到大排在最后3.编写程序:func main(){...原创 2019-02-18 23:10:31 · 114 阅读 · 0 评论 -
golang_算法: 选择排序算法
选择排序算法1.分析问题:拿第n个数字和n+1及后面所有的数依次比较,小的移动到前面2.设计算法:1)第一次排序,下标为0的数字和1及后面所有的数依次比较,小的交换到前面2)第二次排序,下标为1的数字和2及后面所有的数依次比较,小的交换到前面...3)第n次排序,下标为n的数字和n+1及后面所有的数依次比较,小的交换到前面3.编写程序func main() { arr:=...原创 2019-02-21 16:24:31 · 183 阅读 · 0 评论 -
golang_算法: 插入排序算法
插入排序算法-insertSort分析问题从数组第二位数字开始和前面的数字分别比较,如果前面的数字较大,则前面的数字后移设计算法确定arr[i]位置的元素将它与之前的元素arr[i-1]进行比较如果它之前的元素arr[i-1]较大,则将该位置的元素arr[i]赋值为它之前的元素,即arr[i]=arr[i-1]再将i-1,重复2和3的动作,直至i-1>=0如果arr...原创 2019-02-23 16:30:00 · 115 阅读 · 0 评论