最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

golang 數(shù)組去重,利用map的實現(xiàn)

 更新時間:2022年04月14日 16:44:26   作者:做一只會飛的象  
這篇文章主要介紹了golang 數(shù)組去重,利用map的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

golang數(shù)組去重利用map

可以利用go中,map數(shù)據(jù)類型的key唯一的屬性,來對數(shù)組去重

將strSlice數(shù)組中重復的元素去掉,使其中的元素唯一

var strMap make(map[string]string)
strSlice := []string {"slice","int","string","int","boolean","string"}
for _,v:= range strSlice{
?? ?strMap[value] = v
}
//strMap為:{"slice":"slice","int":"int","string":"string","boolean":boolean"}
//如果想將map轉(zhuǎn)換為slice,可利用數(shù)組的append函數(shù)
var secondStr []string
for _,value := range strMap{
?? ?secondStr = append(secondStr ,value)
}
//secondStr為:{"slice","int","string","boolean"}

golang刪除排序數(shù)組中的重復項

給定一個排序數(shù)組,你需要在原地刪除重復出現(xiàn)的元素,使得每個元素只出現(xiàn)一次,返回移除后數(shù)組的新長度。

不要使用額外的數(shù)組空間,你必須在原地修改輸入數(shù)組并在使用 O(1) 額外空間的條件下完成。

給定數(shù)組 nums = [1,1,2], 

函數(shù)應該返回新的長度 2, 并且原數(shù)組 nums 的前兩個元素被修改為 1, 2。 

你不需要考慮數(shù)組中超出新長度后面的元素。

給定 nums = [0,0,1,1,1,2,2,3,3,4],

函數(shù)應該返回新的長度 5, 并且原數(shù)組 nums 的前五個元素被修改為 0, 1, 2, 3, 4。

你不需要考慮數(shù)組中超出新長度后面的元素。

首先理解題意:

  • 當給定數(shù)組為空的時候就應該返回0
  • 而且不能引入其他數(shù)組空間,那就是不能再使用一個新的數(shù)組來存放結果
  • 還要不重復,數(shù)組中超出新長度后面的元素無視

那我們就可以用快慢指針的思想來解答這道題了

  • 給定兩個游標left和right
  • 當給定數(shù)組的下標為left和right的值一樣的話,就不管
  • 當不一樣的話,那我們就要做一個操作,就是把當前right下標的值給到left下一個下標

具體代碼:

func removeDuplicates(nums []int) int {
? ? //如果是空切片,那就返回0
? ? if len(nums) == 0 {
? ? ? ? return 0
? ? }
? ? //用兩個標記來比較相鄰位置的值
? ? //當一樣的話,那就不管繼續(xù)
? ? //當不一樣的時候,就把right指向的值賦值給left下一位
? ? left, right := 0, 1
? ? for ; right < len(nums); right++ {
? ? ? ? if nums[left] == nums[right] {
? ? ? ? ? ? continue
? ? ? ? }
? ? ? ? left++
? ? ? ? nums[left] = nums[right]
? ? }
? ? fmt.Println(nums[:left+1])
? ? return left + 1
}

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。 

相關文章

  • Golang中如何使用lua進行擴展詳解

    Golang中如何使用lua進行擴展詳解

    這篇文章主要給大家介紹了關于Golang中如何使用lua進行擴展的相關資料,這是最近在工作中遇到的一個問題,覺著有必要分享出來給大家學習,文中給出了詳細的示例,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-10-10
  • Golang常用的幾種密碼加密方式分享

    Golang常用的幾種密碼加密方式分享

    這篇文章給大家介紹了Golang常用的幾種密碼加密方式,加密有兩種方式,一種是直接加密,一種是鹽值加密,直接加密指的是將原始密碼直接進行加密,鹽值加密則是在進行密碼加密之前,文中有詳細的代碼示例,需要的朋友可以參考下
    2023-08-08
  • golang判斷兩個事件是否存在沖突的方法示例

    golang判斷兩個事件是否存在沖突的方法示例

    這篇文章主要為大家詳細介紹了golang判斷兩個事件是否存在沖突的方法示例,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-10-10
  • Go如何優(yōu)雅的使用字節(jié)池示例詳解

    Go如何優(yōu)雅的使用字節(jié)池示例詳解

    在編程開發(fā)中,我們經(jīng)常會需要頻繁創(chuàng)建和銷毀同類對象的情形,這樣的操作很可能會對性能造成影響,這時常用的優(yōu)化手段就是使用對象池(object pool),這篇文章主要給大家介紹了關于Go如何優(yōu)雅的使用字節(jié)池的相關資料,需要的朋友可以參考下
    2022-08-08
  • golang中cache組件的使用及groupcache源碼解析

    golang中cache組件的使用及groupcache源碼解析

    本篇主要解析groupcache源碼中的關鍵部分, lru的定義以及如何做到同一個key只加載一次。緩存填充以及加載抑制的實現(xiàn)方法,本文重點給大家介紹golang中cache組件的使用及groupcache源碼解析,感興趣的朋友一起看看吧
    2021-06-06
  • Golang TCP網(wǎng)絡編程的具體實現(xiàn)

    Golang TCP網(wǎng)絡編程的具體實現(xiàn)

    go語言是一門功能強大的編程語言,它提供了眾多的網(wǎng)絡編程庫,其中包括tcp/ip,本文主要介紹了Golang TCP網(wǎng)絡編程的具體實現(xiàn),具有一定的參考價值,感興趣的可以來了解一下
    2024-06-06
  • gin通過go build -tags實現(xiàn)json包切換及庫分析

    gin通過go build -tags實現(xiàn)json包切換及庫分析

    這篇文章主要為大家介紹了gin通過go build -tags實現(xiàn)json包切換及庫分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • GO實現(xiàn)協(xié)程池管理的方法

    GO實現(xiàn)協(xié)程池管理的方法

    這篇文章給大家介紹GO實現(xiàn)協(xié)程池管理的方法,分別使用channel實現(xiàn)協(xié)程池和消費者模式實現(xiàn)協(xié)程池,本文通過實例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2021-07-07
  • Golang?Heap的源碼剖析

    Golang?Heap的源碼剖析

    這篇文章主要給大家詳細剖析了Golang?Heap源碼,文中有詳細的代碼示例,對我們學習Golang?Heap有一定的幫助,需要的朋友可以參考下
    2023-07-07
  • go?zero微服務實戰(zhàn)性能優(yōu)化極致秒殺

    go?zero微服務實戰(zhàn)性能優(yōu)化極致秒殺

    這篇文章主要為大家介紹了go-zero微服務實戰(zhàn)性能優(yōu)化極致秒殺功能實現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07

最新評論

凌云县| 南康市| 高雄县| 福海县| 永福县| 云南省| 英德市| 平顺县| 阳春市| 湄潭县| 鲁甸县| 江城| 丰都县| 星座| 库车县| 萨迦县| 班玛县| 夹江县| 乐山市| 肇东市| 建湖县| 珠海市| 丰原市| 余江县| 雷州市| 江源县| 山西省| 那曲县| 大丰市| 东兰县| 合阳县| 龙井市| 岳西县| 城固县| 洛川县| 浮梁县| 田阳县| 吉木乃县| 竹山县| 岳阳市| 三江|