Go 實現的一些演算法題

2022-06-23 13:15:12 字數 1352 閱讀 2755

最近在學習演算法,因為大學的時候,沒有學好,現在就惡補一下。

下面**是用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,這個引數可以指定鍊錶是按照插入順序排...