(一)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.mzph.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;使用反射时需要注意一些性能和安…