1 回答

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超6個(gè)贊
您要查找的教科書是
Go 編程語言規(guī)范
數(shù)值類型
數(shù)字類型表示整數(shù)或浮點(diǎn)值的集合。預(yù)先聲明的獨(dú)立于體系結(jié)構(gòu)的數(shù)字類型是:
uint32 set of all unsigned 32-bit integers (0 to 4294967295)
uint64 set of all unsigned 64-bit integers (0 to 18446744073709551615)
int32? set of all signed 32-bit integers (-2147483648 to 2147483647)
int64? set of all signed 64-bit integers (-9223372036854775808 to 9223372036854775807)
還有一組預(yù)先聲明的數(shù)字類型,具有特定于實(shí)現(xiàn)的大小:
uint either 32 or 64 bits
int? same size as uint
檢查類型的大小int。在 Go Playground 上,它是 4 個(gè)字節(jié)或 32 位。
package main
import (
? ? "fmt"
? ? "runtime"
? ? "unsafe"
)
func main() {
? ? fmt.Println("arch", runtime.GOARCH)
? ? fmt.Println("int", unsafe.Sizeof(int(0)))
}
游樂場:https://play.golang.org/p/2A6ODvhb1Dx
輸出(游樂場):
arch amd64p32
int 4
在您的 (LeetCode) 環(huán)境中運(yùn)行該程序。它可能是 8 個(gè)字節(jié)或 64 位。
例如,在我的環(huán)境中,
輸出(本地):
arch amd64
int 8
以下是對您的代碼的一些修復(fù),
package main
import (
? ? "fmt"
? ? "runtime"
)
func main() {
? ? fmt.Println(runtime.GOARCH)
? ? fmt.Printf("%v\n", singleNumber([]int{-2, -2, 1, 1, -3, 1, -3, -3, -4, -2}))
}
func singleNumber(nums []int) int {
? ? sum := make([]int, 64)
? ? for _, v := range nums {
? ? ? ? for i := range sum {
? ? ? ? ? ? sum[i] += 1 & (v >> uint(i))
? ? ? ? }
? ? }
? ? res := 0
? ? for k, v := range sum {
? ? ? ? if (v % 3) != 0 {
? ? ? ? ? ? res |= (v % 3) << uint(k)
? ? ? ? }
? ? }
? ? fmt.Printf("res %+v\n", res)
? ? return res
}
游樂場:https://play.golang.org/p/kaoSuesu2Oj
輸出(游樂場):
amd64p32
res -4
-4
輸出(本地):
amd64
res -4
-4
- 1 回答
- 0 關(guān)注
- 131 瀏覽
添加回答
舉報(bào)