...大约 1 分钟
查看索引
站内文章索引和分类
友情链接
欢迎交换友情链接
留言板
欢迎交换友情链接
...小于 1 分钟
https://zhuanlan.zhihu.com/p/27644026
要学好 webpack,必须熟悉 JS 模块规范 \
CommonJS 规范:
function isNumber(n) {
return typeof n === 'number';
}
module.exports = {
sum: function (a, b) {
if (isNumber(a) && isNumber(b)) {
return a + b;
} else {
return NaN;
}
},
};
...小于 1 分钟
...小于 1 分钟
...小于 1 分钟
安装包下载地址
Windows
下载 .mis
文件,直接下一步
MacOS
下载 .pkg
文件,直接下一步
Linux
相关操作脚本如下:
# 查看机器版本
arch
# 下载 x86 版本
curl -o "goPackage" https://dl.google.com/go/go1.22.0.linux-amd64.tar.gz
# 下载 ARM 版本
curl -o "goPackage" https://dl.google.com/go/go1.22.0.linux-arm64.tar.gz
# 删除老版本
rm -rf /usr/lib/go
# 解压新版本
sudo tar -zxvf goPackage -C /usr/lib
rm -rf goPackage
# 设置添加环境变量
sudo vim /etc/profile
# 追加如下
export GOROOT=/usr/lib/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
# 重新加载配置
source /etc/profile
# 检查版本
go version
...小于 1 分钟
https://leetcode.cn/problems/group-anagrams
解法思路
Golang
package main
import (
"fmt"
"sort"
"strings"
)
func main() {
strs := []string{"eat", "tea", "tan", "ate", "nat", "bat"}
results := groupAnagrams(strs)
fmt.Println("results", results)
}
// 暴力求解
func groupAnagrams(strs []string) [][]string {
hasMap := map[string][]string{}
for _, v := range strs {
splitStr := strings.Split(v, "")
sort.Strings(splitStr)
sortStr := strings.Join(splitStr, "")
hasMap[sortStr] = append(hasMap[sortStr], v)
}
returnVal := [][]string{}
for _, v := range hasMap {
returnVal = append(returnVal, v)
}
return returnVal
}
...小于 1 分钟
https://leetcode.cn/problems/longest-consecutive-sequence
解法思路
用 target 挨个 减去 nums 中的项,然后得出结果,如果结果 nums 中存在,则记录下标
JavaScript
Golang
package main
import (
"fmt"
"sort"
)
func main() {
nums := []int{
0, 1, 1, 2,
}
results := longestConsecutive(nums)
fmt.Println("results", results)
results2 := longestConsecutive2(nums)
fmt.Println("results2", results2)
}
// 暴力求解
/*
下一个减去上一个,结果为1则判定为有效
*/
func longestConsecutive(nums []int) int {
// 去重
hasMap := map[int]bool{}
newArr := []int{}
for _, v := range nums {
if !hasMap[v] {
hasMap[v] = true
newArr = append(newArr, v)
}
}
// 排序
sort.Ints(newArr)
// fmt.Println("newArr", newArr)
lineArr := []int{}
// result := [][]int{}
max := 0
if len(newArr) == 1 {
return 1
}
for idx, item := range newArr {
nextIdx := idx + 1
if nextIdx > len(newArr)-1 {
nextIdx = 0
}
now := item
next := newArr[nextIdx]
if next-now == 0 {
continue
}
if next-now == 1 {
lineArr = append(lineArr, item)
} else {
lineArr = append(lineArr, item)
// result = append(result, lineArr)
if len(lineArr) > max {
max = len(lineArr)
}
lineArr = []int{}
}
}
// fmt.Println("result", result)
return max
}
// 利用哈希表
/*
将数组映射成哈希表
然后在哈希表中找-1的数字是否存在
*/
func longestConsecutive2(nums []int) int {
numSet := map[int]bool{}
for _, num := range nums {
numSet[num] = true
}
longestStreak := 0
for num := range numSet {
if !numSet[num-1] {
currentNum := num
currentStreak := 1
for numSet[currentNum+1] {
currentNum++
currentStreak++
}
if longestStreak < currentStreak {
longestStreak = currentStreak
}
}
}
return longestStreak
}
...小于 1 分钟
https://leetcode.cn/problems/container-with-most-water
解法思路
Golang
package main
import (
"fmt"
)
func main() {
nums := []int{
1, 8, 6, 2, 5, 4, 8, 3, 7,
}
results := maxArea(nums)
fmt.Println("results", results)
}
// 暴力求解
/*
计算最大容积
容积的公式为 底*高
底 = 当前下标和未来下标的差
高 = 二者之间最大值
*/
func maxArea(height []int) int {
res := 0 // 最大面积
l := 0 // 最左边
r := len(height) - 1 // 最右边
for l < r {
y := 0
x := r - l
if height[l] < height[r] {
y = height[l]
l++
} else {
y = height[r]
r--
}
are := y * x
if are > res {
res = are
}
}
return res
}
...小于 1 分钟
https://leetcode.cn/problems/move-zeroes
解法思路
Golang
package main
import (
"fmt"
)
func main() {
nums := []int{1, 2, 0, 3, 4, 0, 1, 0, 5, 0}
fmt.Println("nums", nums)
moveZeroes(nums)
fmt.Println("nums", nums)
nums2 := []int{0, 3, 4, 0, 1, 0, 5, 0}
fmt.Println("nums2", nums2)
moveZeroes2(nums2)
fmt.Println("nums2", nums2)
}
// 暴力求解
/*
标记非 0 的值,然后进行替换
*/
func moveZeroes(nums []int) {
notZero := []int{}
for _, item := range nums {
if item != 0 {
notZero = append(notZero, item)
}
}
for idx := range nums {
if idx <= len(notZero)-1 {
nums[idx] = notZero[idx]
} else {
nums[idx] = 0
}
}
}
// 非0值移动
func moveZeroes2(nums []int) {
j := 0
for _, v := range nums {
if v != 0 {
nums[j] = v
j++
}
}
// 将其余值设为0
for i := j; i < len(nums); i++ {
nums[i] = 0
}
}
...小于 1 分钟