(一)Go語言使用:常用API

Math

import("math"
)
// 比較大小 a,b float64 其他的最大最小得自己實現
Math.max(a,b)
Math.min(a,b)
// 最大數 最小數
math.MaxInt64
math.MinInt64
?
math.Sqrt(5) // 開方 返回float64
math.Pow(a,b) // 求冪 參數都是float64

sort & 排序

// 排序
sort.Ints(nums)
sort.Float64s(floats)
sort.Strings(strs)
sort.Float64sAreSorted(floats)
// 自定義排序
sort.Slice(stus, func(i, j int) bool {return stus[i].Name < stus[j].Name
})
// 排序搜索
// [0,n)中取出一個值index,index是最小的能使f為true的值,多用于排序好的數組查詢
sort.Search(len(matrix),func(i int) bool{return matrix[i][0]>target})
// 返回等于x的下標中 最小的那個
// 或者 a < x < b b的下標
// 沒找到會返回 len(g)
sort.SearchInts(g, x)

sort.IntSlice詳解 自定義sort.IntSlice

a := sort.IntSlice{2, 8, 3, 7, 9, 4, 1, 6} // []int類型 可排序
a.Sort() // 調用排序方法 從小到大

初始化

// 切片
ans := make([][]int, 0)
// map
m:=map[byte]int{}

Map

m:=map[byte]int{}
m:=map[byte]int{'c':1,'a',2}
delete(m,'k')
v,ok := m[pre-k]
map['1'] // 如果找不到,返回0
for key, value := range occurrences {heap.Push(h, [2]int{key, value})
}

Slice

var q []int // 可以用append
q := make([][]int, 0)
q := []int{}
var (res    []intq      []intindexs []intedges  [][]int
)
?
var mapping = [...]string{"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"}
q = append(ans,i)
q = ans[:len(q)-1]
copy(q,ans) // 把ans復制給q
ans = append(ans, append([]int{}, path...)) // 數組復制
for i,v := range q
for i := range q

Heap

優先隊列

23. 合并 K 個升序鏈表

示例:最小堆

295. 數據流的中位數

import ("container/heap"
)
// 使用
h := &hp{}
heap.Init(h) // 堆化,注意這里是傳指針
heap.Push(h, [2]int{ke, v})
if h.Len() > k {heap.Pop(h)
}
*h[0] // 第0個是最小的(最小堆)
?
// 需要重寫的方法 定義和方法 最小堆底層實際上是一個從大到小排序的數組
type hp []int
func (h hp) Len() int           { return len(h) }
func (h hp) Less(i, j int) bool { return h[i] < h[j] } // 最小堆
func (h hp) Swap(i, j int)      { h[i], h[j] = h[j], h[i] }
func (h *hp) Push(v interface{}) { h = append(h, v.(int)) }
func (h *hp) Pop() interface{} { // 每次push和pop的時候都會刷新堆a := *hv := a[len(a)-1]*h = a[:len(a)-1]return v
}

String

s string
len(s)
string(b) // byte[] -> string
_, c := range s // string底層是rune[]
byte(c) // rune -> byte

轉化

float64(c1+c2)/2.0 // int->float64
1 + int(c -'0') // byte->int
"1"+string(c) // byte->string

For

for i++;nums[i]<partition;i++{} // = do i++; while();

位運算

a^a=a
0^a=a
single ^= num

strings.Builder{}

import("strings"
)
?
temp := strings.Builder{}
temp.WriteString('s') // 寫入當前字符串
temp.String() // 更新當前字符串

鍵盤輸入

reader := bufio.NewReader(os.Stdin)
reader.ReadString('\n')

atomic

atomic.AddInt64(&p.size, 1)
atomic.LoadInt64(&p.cap) // 讀取

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/14149.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/14149.shtml
英文地址,請注明出處:http://en.pswp.cn/web/14149.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

探索Linux中的神奇工具:深入了解wc命令

探索Linux中的神奇工具&#xff1a;深入了解wc命令 在Linux系統中&#xff0c;wc命令是一個簡單但功能強大的工具&#xff0c;用于統計文件中的字數、行數和字符數。本文將詳細介紹wc命令的基本用法和一些常見選項&#xff0c;幫助讀者更好地理解和運用這個命令。 了解wc命令…

移動硬盤不小心制作成啟動盤怎么辦?別慌,這樣解決更輕松

在數字化時代&#xff0c;移動硬盤作為我們存儲和攜帶重要數據的重要設備&#xff0c;其安全性與便利性不言而喻。然而&#xff0c;在日常使用中&#xff0c;我們可能會遇到一些意想不到的情況&#xff0c;比如一不小心將移動硬盤制作成了啟動盤。面對這種情況&#xff0c;許多…

【Linux】centos7修改主機名

在CentOS 7中&#xff0c;您可以使用hostnamectl命令修改主機名。以下是步驟和示例代碼&#xff1a; 查看當前主機名&#xff1a; hostnamectl status 設置靜態主機名&#xff1a; sudo hostnamectl set-hostname 新主機名 將新主機名替換為您想要設置的主機名。 退出并重新登…

HTTP 重定向 狀態碼3xx

http狀態碼301代表永久重定向。當服務器收到客戶端的請求時&#xff0c;會將其重定向到另一個url&#xff0c;而不是返回請求的資源。通常用于以下情況&#xff1a; 1、當網站的url結構發生變化或網站遷移到新的域名時。 2、當網站上存在重復內容時&#xff0c;可以使用301狀態…

go select 原理

編譯器會使用如下的流程處理 select 語句&#xff1a; 將所有的 case 轉換成包含 channel 以及類型等信息的 runtime.scase 結構體。調用運行時函數 runtime.selectgo 從多個準備就緒的 channel 中選擇一個可執行的 runtime.scase 結構體。通過 for 循環生成一組 if 語句&…

Spring-AOP入門案例

Spring-AOP&#xff08;Aspect Oriented Programming&#xff0c;面向切面編程&#xff09;是Spring框架的一個重要部分&#xff0c;它允許開發者在不修改原有業務邏輯代碼的情況下&#xff0c;為程序添加額外的功能&#xff0c;如日志記錄、事務管理、安全性控制等。以下是一個…

使用OPENCV查找邊界,提取出面積前top_n的圖像部分,順序粘貼到指定背景圖像上合成單個照片

使用OPENCV查找邊界,提取出面積前top_n的圖像部分,順序粘貼到指定背景圖像上合成單個照片 注意,僅適用于簡單邊緣邊界 import argparse import sysimport cv2 import os import numpy as npif __name__ "__main__":parser argparse.ArgumentParser(description請指…

1W、2W 3KVAC隔離 寬電壓輸入 交直兩用AC/DC 電源模塊——TP01(02)AZ 系列

TP01(02)AZ為客戶提供一款超小體積模塊式開關電源&#xff0c;該系列模塊電源輸出功 率為1W、2W&#xff0c;具有極低的空載損耗&#xff0c;低漏電流僅0.1mA&#xff0c;小體積&#xff0c;隔離耐壓高達 3KV等特點。產品安全可靠&#xff0c;EMC 性能好&#xff0c;EMC 及安全…

【低照度圖像增強系列(7)】RDDNet算法詳解與代碼實現(同濟大學|ICME)

前言 ?? 在低照度場景下進行目標檢測任務&#xff0c;常存在圖像RGB特征信息少、提取特征困難、目標識別和定位精度低等問題&#xff0c;給檢測帶來一定的難度。 &#x1f33b;使用圖像增強模塊對原始圖像進行畫質提升&#xff0c;恢復各類圖像信息&#xff0c;再使用目標檢測…

裝飾器模式與代理模式的區別?

代理模式 為其他對象提供一種代理以控制對這個對象的訪問。在某些情況下&#xff0c;一個對象不適合或者不能直接引用另一個對象&#xff0c;而代理對象可以在客戶端和目標對象之間起到中介的作用。 代理模式的適用場景&#xff1a; 功能增強 當需要對一個對象的訪問提供一些…

SpringBoot(九)之整合mybatis

SpringBoot&#xff08;九&#xff09;之整合mybatis 文章目錄 SpringBoot&#xff08;九&#xff09;之整合mybatisSpring整合mybatis回顧1. 引入依賴2. mybatis-config.xml SpringBoot整合mybatis1.引入依賴2. 配置數據源和 MyBatis 屬性3. 配置 Mapper 接口4. 配置mapper.xm…

Python | 十一、項目搭建

項目環境配置 python setup.py 是 Python 中設置、分發和安裝模塊的傳統方式。setup.py 文件通常位于一個 Python 項目的根目錄下&#xff0c;并且定義了一個名為 setup 的函數。這個 setup 函數是 setuptools&#xff08;或者早期的 distutils&#xff09;模塊的一部分&#…

絕緣監測系統在1kV 及以下低壓配電系統的應用

安科瑞電氣股份有限公司 祁潔 acrelqj 一、系統概述 Acrel-2000L/A 絕緣監測系統設備適用于 1kV 及以下低壓配電系統。該設備可以集中采集監測顯示絕緣監測儀的數據&#xff0c;實現最多 8 個絕緣監測儀的數據&#xff0c;并且實時記錄告警信息和曲線查詢。匹配的絕緣監測儀…

【INTEL(ALTERA)】采用 JTAG 頻率為 24MHz 或 16Mhz 的非流水線Nios? V/m 處理器,niosv-download 失敗

說明 在英特爾 Quartus Prime Pro Edition 軟件 23.3 版及更高版本中將 Nios V 處理器軟件下載到非流水線Nios V/m 處理器時&#xff0c;可能會出現此問題。 這是由于處理器限制&#xff0c;僅影響非流水線Nios V/m 處理器。 以下其他處理器不受此限制的影響&#xff1a; 管…

jQuery對象與DOM對象簡介及相互轉換

在Web開發中&#xff0c;操作頁面元素是日常任務之一。JavaScript原生提供了一套方法來處理這些操作&#xff0c;這便是DOM&#xff08;Document Object Model&#xff09;對象。而隨著jQuery庫的流行&#xff0c;開發者又獲得了一個更簡潔、強大的工具來處理DOM操作&#xff0…

mongo增刪改查的命令/sql語句

mongodb的查詢命令對應的sql命令&#xff1a;https://blog.csdn.net/weixin_42726306/article/details/90208031 mongodb的更新、保存常用命令&#xff1a;https://blog.csdn.net/qq_16664643/article/details/52217315?utm_mediumdistribute.pc_relevant.none-task-blog-2de…

如何開發一個基于通義千問-14B的對話應用

目錄 一:開發流程 二:安裝 一:開發流程 1:安裝環境 需要安裝python依賴環境 2:配置項目 我們利用Langchain-Chatchat和Qwen1.5-14B-Chat-GPTQ-Int4來實現一個對話項目應用 3:啟動項目 二:安裝 1:安裝環境 初始化一個python環境: conda create -n qwen-chat py…

搭建第一個SpringBoot+Vue項目

Maven&#xff1a;項目管理工具&#xff0c;對Java項目進行自動化的構建和依賴管理 SpringBoot的特點 只需要很少的配置或者默認配置 能夠使用內嵌的Tomcat、Jetty服務器&#xff0c;不需要部署war文件 提供定制化的啟動器Starters&#xff0c;簡化Maven配置&#xff0c;開…

Spark項目實訓(一)

目錄 實驗任務一&#xff1a;計算級數 idea步驟分步&#xff1a; 完整代碼&#xff1a; linux步驟分布&#xff1a; 實驗任務二&#xff1a;統計學生成績 idea步驟分布&#xff1a; 完整代碼&#xff1a; linux步驟分步&#xff1a; 實驗任務一&#xff1a;計算級數 請…

C#反射的學習,反射的一些注意事項,反射的一些使用代碼的實例

C# 中的反射&#xff08;Reflection&#xff09;是一種強大的機制&#xff0c;它允許程序在運行時獲取關于類型&#xff08;如類、結構、枚舉、委托、接口和數組&#xff09;的信息&#xff0c;并且能動態地創建和使用這些類型。然而&#xff0c;使用反射時需要注意一些性能和安…