golang多維度排序及題解最長(zhǎng)連續(xù)序列
golang 多維度排序
func main() {
type PersonAge struct {
Name string
Age int
Hight int
}
ps := []PersonAge{
{"bo", 31, 333},
{"ao", 42, 34},
{"ao", 41, 23423},
{"ao", 40, 23423},
{"ao", 45, 12},
{"co", 17, 3434},
{"do", 26, 2343},
}
sort.Slice(ps, func(i, j int) bool {
//!= 有大小時(shí)排序,相等時(shí),下一個(gè)選項(xiàng)的優(yōu)先級(jí)
if ps[i].Name != ps[j].Name {
return ps[i].Name < ps[j].Name
}
if ps[i].Hight != ps[j].Hight {
return ps[i].Hight < ps[j].Hight
}
return ps[i].Age < ps[j].Age
})
log.Println(ps)
return
}結(jié)果
[{ao 45 12} {ao 42 34} {ao 40 23423} {ao 41 23423} {bo 31 333} {co 17 3434} {do 26 2343}]
題解最長(zhǎng)連續(xù)序列
給定一個(gè)未排序的整數(shù)數(shù)組 nums ,找出數(shù)字連續(xù)的最長(zhǎng)序列(不要求序列元素在原數(shù)組中連續(xù))的長(zhǎng)度。
請(qǐng)你設(shè)計(jì)并實(shí)現(xiàn)時(shí)間復(fù)雜度為 O(n) 的算法解決此問(wèn)題。
示例 1:
輸入:nums = [100,4,200,1,3,2]
輸出:4
解釋?zhuān)鹤铋L(zhǎng)數(shù)字連續(xù)序列是 [1, 2, 3, 4]。它的長(zhǎng)度為 4。
示例 2:
輸入:nums = [0,3,7,2,5,8,4,6,0,1]
輸出:9
//排序
func longestConsecutive(nums []int) int {
if len(nums) == 0 {
return 0
}
sort.Ints(nums)
long := 1
lst := 1
tmp := nums[0]
for i, _ := range nums {
if nums[i] == tmp+1 {
long++
lst = max(lst, long)
tmp = nums[i]
} else if nums[i] == tmp {
continue
} else {
long = 1
tmp = nums[i]
}
}
return lst
}
func max(a,b int)int{
if a>b{
return a
}
return b
}以上就是golang多維度排序及題解最長(zhǎng)連續(xù)序列的詳細(xì)內(nèi)容,更多關(guān)于golang 排序的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
golang 實(shí)現(xiàn)一個(gè)restful微服務(wù)的操作
這篇文章主要介紹了golang 實(shí)現(xiàn)一個(gè)restful微服務(wù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04
Go語(yǔ)言break跳轉(zhuǎn)語(yǔ)句怎么使用
這篇文章主要介紹了Go語(yǔ)言break跳轉(zhuǎn)語(yǔ)句怎么使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-01-01
在Colaboratory上運(yùn)行Go程序的詳細(xì)過(guò)程
這篇文章主要介紹了在Colaboratory上運(yùn)行Go程序,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08
golang封裝一個(gè)執(zhí)行命令行的函數(shù)(return?stderr/stdout/exitcode)示例代碼
在?Go?語(yǔ)言中,您可以使用?os/exec?包來(lái)執(zhí)行外部命令,不通過(guò)調(diào)用?shell,并且能夠獲得進(jìn)程的退出碼、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出,下面給大家分享golang封裝一個(gè)執(zhí)行命令行的函數(shù)(return?stderr/stdout/exitcode)的方法,感興趣的朋友跟隨小編一起看看吧2024-06-06
提升編程技能:學(xué)習(xí)如何在Go語(yǔ)言中正確格式化時(shí)間
想知道如何在Go語(yǔ)言中輕松地格式化時(shí)間嗎?別再浪費(fèi)時(shí)間了!本文將帶你快速入門(mén),讓你的代碼更加優(yōu)雅高效,快來(lái)學(xué)習(xí)吧!2024-01-01

