func uniquePaths(m int, n int) int {
if(m == 1 || n == 1){
return 1
}
//var arr [m][n]int 这样会报错提示无法使用变量
var arr [][]int
for x := 0; x < m; x++ { //循环为一维长度
ar := make([]int, n) //创建一个一维切片
arr = append(arr, ar) //把一维切片,当作一个整体传入二维切片中
}
//数组创建完成,下面是个例子使用
arr[0][0] = 1
for i := 1 ; i < len(arr) ; i++{
for j := 1 ; j < len(arr[0]) ; j++{
if(i - 1 == 0){
arr[i - 1][j] = 1
}
if(j - 1 == 0){
arr[i][j - 1] = 1
}
arr[i][j] = arr[i - 1][j] + arr[i][j - 1]
}
}
return arr[m - 1][n - 1]
}
func groupAnagrams(strs []string) [][]string {
list := make([][]string,0)
if(strs == nil || len(strs) == 0){
return list
}
index := 0
map_array := make(map[string]int)
for i := 0; i < len(strs); i++ {
//转变成字符数组
str_ := make([]string,0)
for i2 := range strs[i] {
str_ = append(str_, string(strs[i][i2]))
}
//对字符数组排序
sort.Strings(str_)
//转换为字符串
var strNew string
for i2 := range str_ {
strNew += str_[i2]
}
indexCur,ok := map_array[strNew]
if(ok){
strCur := list[indexCur]
strCur = append(strCur, strs[i])
list[indexCur] = strCur
}else {
map_array[strNew] = index
index++
ar := make([]string, 0)
ar = append(ar,strs[i])
list = append(list, ar)
}
}
return list
}