最近在學習演算法,因為大學的時候,沒有學好,現在就惡補一下。
下面**是用golang實現的一部門的,之後會慢慢的在進行新增。package main
import ("fmt"
"regexp"
"strings"
)//翻轉陣列
func reversearr(arr int) int
if arr[i] == 10
} if addone == 1else
return result
}//奇數偶數排序,奇數拍前面,偶數拍後面
func oddsortarr(arr int) int
} return arr2[0:k]
}//獲取最長公共字首
func getlongtext(arr string) string
prefix := arr[0]
for _,val:=range arr
prefix = prefix[:len(prefix)-1]
} }return prefix
}//插入排序的實現方式1
func insertsortone(arr int) int
arr[preindex+1] = current
} return arr
}//選擇排序
func selectsort(arr int) int
} arr[min],arr[i] = arr[i],arr[min]
} return arr
}func main()
//arr2 := int
arr3 :=int
//s2 := "a man, a plan, a canal: panama"
//strs := string
fmt.println(selectsort(arr3))
}
//二分查詢func findall(arr int ,k int) int else if arr[mid] right
} return mid
}
//快速排序func quitsort(arr int)int
var left int
var right int
mid := arr[0]
for i := 1;i合併兩個有序陣列,其實和合併兩個有序鍊錶是邏輯相似
//合併兩個有序陣列
func mergearr(a, b int) int else
} if aindexif bindexreturn result
}
一些有趣的演算法題
老崔去某廠筆試時,遇到了經典的 狼 羊 白菜 過河問題 由於經常看演算法方面的內容,這道對於他來說,so easy。題目大概是這樣 題號1 農夫需要把狼 羊 菜和自己運到河對岸去,只有農夫能夠划船,而且船比較小,除農夫之外每次只能運一種東西,還有乙個棘手問題,就是如果沒有農夫看著,羊會偷吃菜,狼會吃...
做演算法題的一些想法
現在dp的難點在於,理解遞迴方程不難,但是如何據此設計出符合題意的正確的初始條件?不同的初始條件對應不同的問題。如01揹包中的是恰好裝滿揹包還是不超過揹包最大容量,可以通過初始化解決。自己在設計演算法的時候,如何設計出符合題意的初始條件和遞迴過程。這個過程全靠腦子復現一步一步的步驟是很慢的。因此,需...
記錄一些其他演算法題
lru演算法知道嗎,怎麼實現的?最近最少使用演算法,多用於程序的排程,快取淘汰等等 使用linkedhashmap可以實現,相對於hashmap,增加了雙向鍊錶,用於記錄節點之間的先後順序。linkedhashmap的建構函式提供了乙個引數accessorder,這個引數可以指定鍊錶是按照插入順序排...