Golang 百题(实战快速掌握语法)_2

news2024/11/25 2:45:28

返回集合中满足指定条件的最后一个元素

本实验将实现判断给定集合中的元素是否符合,并返回符合的最后一个元素。

知识点
  • for
  • fmt.Error
适合人群

本课程属于基础课程。需要用户掌握 Go 语言编程基础知识、计算机基础知识和 Linux 环境的基本用法。

许可证

内容编译来自 psampaz和30s-seconds-of-golang 的开源项目,它们分别使用 CC BY-SA 4.0 License,CC0-1.0 License,为了能够适合实验楼在线环境,我们修改了部分解题和单元测试代码。

代码实例

我们可以使用 for 循环倒序遍历来进行查看,因为 Go 中参数可以为函数,所有我们使用判断函数来作为判断的参数传入主函数中,下面是一个例子。

package main

import "fmt"

func FindLastInt(arr []int, f func(int) bool) (int, error) {
    for i := len(arr) - 1; i >= 0; i-- {
        if f(arr[i]) {
            return arr[i], nil
        }
    }
    return 0, fmt.Errorf("No matches found")
}
func FindLastFloat64(arr []float64, f func(float64) bool) (float64, error) {
    for i := len(arr) - 1; i >= 0; i-- {
        if f(arr[i]) {
            return arr[i], nil
        }
    }
    return 0.0, fmt.Errorf("No matches found")
}
func FindLastBool(arr []bool, f func(bool) bool) (bool, error) {
    for i := len(arr) - 1; i >= 0; i-- {
        if f(arr[i]) {
            return arr[i], nil
        }
    }
    return false, fmt.Errorf("No matches found")
}
func FindLastString(arr []string, f func(string) bool) (string, error) {
    for i := len(arr) - 1; i >= 0; i-- {
        if f(arr[i]) {
            return arr[i], nil
        }
    }
    return "", fmt.Errorf("No matches found")
}
func main() {
    r1, ch1 := FindLastInt([]int{1, 1, 2}, func(x int) bool { return x%2 == 0 }) // 2 nil
    fmt.Println(r1, ch1)
}

该程序的功能:

  • 使用 for 循环逆序遍历给定的集合
  • 使用函数 f 来判断是否是符合条件的元素
  • 如果符合条件,则输出元素和 nil,否则输出 0 和错误信息
  • 使用fmt.Error()来生成错误

将代码保存为/home/project/findLast.go文件。

运行程序

打开 WebIDE 的 Terminal 终端,输入以下命令查看输出:

go run findLast.go

总结

本实验我们学习了如何返回集合中满足指定条件的最后一个元素,下个实验我们将讲解如何对给定的集合进行分组。

对给定的集合进行分组

本实验将实现对输入的多个集合按照索引进行分组然后返回这个新的集合。

知识点
  • for
  • reflect
适合人群

本课程属于基础课程。需要用户掌握 Go 语言编程基础知识、计算机基础知识和 Linux 环境的基本用法。

许可证

内容编译来自 psampaz和30s-seconds-of-golang 的开源项目,它们分别使用 CC BY-SA 4.0 License,CC0-1.0 License,为了能够适合实验楼在线环境,我们修改了部分解题和单元测试代码。

代码实例

本实验我们将使用...来对给定的多个集合按照索引进行整合,下面是一个例子。

package main

import (
    "fmt"
    "reflect"
)

func Zip(params ...interface{}) [][]interface{} {
    l := 0
    for i := range params {
        arr := reflect.ValueOf(params[i])
        if l < arr.Len() {
            l = arr.Len()
        }
    }
    r := make([][]interface{}, l)

    for i := 0; i < l; i++ {
        r[i] = make([]interface{}, 0)
        for j := range params {
            v := reflect.ValueOf(params[j])
            if v.Len() > i {
                r[i] = append(r[i], v.Index(i).Interface())
            }
        }
    }
    return r
}
func main() {
    s := []string{"a", "b"}
    i := []int{1, 2}
    b := []bool{true, false}
    r1 := Zip(s, i, b) // [[a 1 true] [b 2 false]]
    fmt.Println(r1)
}

该程序的功能:

  • 使用 make 创建一个二维interface{}数组,并将长度设置为最长的集合
  • 使用 for 循环来遍历给定的多个数组,然后把数组中相同索引的值加到设置的二维数组中。

将代码保存为/home/project/zip.go文件。

运行程序

打开 WebIDE 的 Terminal 终端,输入以下命令查看输出:

go run zip.go

图片描述

总结

本实验我们学习了对多个给定的集合进行索引的分组,下个实验我们将讲解如何判断给定的字符串是否为回文。

判断是否为回文

回文是指正读和反读一样的字符,本实验将判断输入的字符串是否为回文。(本题样例不区分大小写只按正读和反读区分是否回文)

知识点
  • range
适合人群

本课程属于基础课程。需要用户掌握 Go 语言编程基础知识、计算机基础知识和 Linux 环境的基本用法。

许可证

内容编译来自 psampaz和30s-seconds-of-golang 的开源项目,它们分别使用 CC BY-SA 4.0 License,CC0-1.0 License,为了能够适合实验楼在线环境,我们修改了部分解题和单元测试代码。

代码实例

我们分别使用两个变量分别位于字符串的首尾,如果这两个变量相同则它们分别移动一次向中间靠拢,下面是具体的实现。

package main

import (
    "fmt"
    "strings"
)

func IsPalindrome(s string) bool {
    v := strings.ToLower(strings.Join(strings.Fields(s), ""))
    for i := range v {
        if v[len(v)-i-1] != v[i] {
            return false
        }
    }
    return true
}
func main() {
    r := IsPalindrome("taco cat")
    fmt.Println(r)
}

该程序的功能:

  • 使用strings.ToLower使得输入的字符串全部转为小写。
  • for 循环判断字符串的两侧。

将代码保存为/home/project/isPalindrome.go文件。

运行程序

打开 WebIDE 的 Terminal 终端,输入以下命令查看输出:

go run isPalindrome.go

图片描述

总结

本实验我们学习了如何通过首尾参数来判断给定的字符串是否为回文,下个实验我们将学习如何连接同类型的切片。

连接切片

Go 语言中连接同种类型的不同切片,可以使用 append 函数,本实验将实现对输入的切片进行连接。

知识点
  • append
适合人群

本课程属于基础课程。需要用户掌握 Go 语言编程基础知识、计算机基础知识和 Linux 环境的基本用法。

许可证

内容编译来自 psampaz和30s-seconds-of-golang 的开源项目,它们分别使用 CC BY-SA 4.0 License,CC0-1.0 License,为了能够适合实验楼在线环境,我们修改了部分解题和单元测试代码。

代码实例

我们使用 append 和...来进行切片的连接,其中...的作用表示传入切片的多个值,通常用在接受多个不确定数量的参数和表示函数有多个不定参数的情况,下面是一个例子。

package main

import "fmt"

func ConcatInt(a, b []int) []int {
    return append(a, b...)
}
func ConcatFloat64(a, b []float64) []float64 {
    return append(a, b...)
}
func ConcatBool(a, b []bool) []bool {
    return append(a, b...)
}
func ConcatStrings(a, b []string) []string {
    return append(a, b...)
}
func main() {
    d1, d2 := []string{"a", "b", "c"}, []string{"d", "e"}
    r := ConcatStrings(d1, d2) // [a b c d e]
    fmt.Println("date1 ", d1, "\ndate2 ", d2, "\nresult: ", r)
}

该程序的功能:

  • 使用 append 和可变参数...来扩展 slice

将代码保存为/home/project/concat.go文件。

运行程序

打开 WebIDE 的 Terminal 终端,输入以下命令查看输出:

go run concat.go

图片描述

总结

本实验我们学习了如何通过不定参数变量和 append 连接切片的方法,下个实验我们将讲解求多个数字的最大公约数。

求多个数字的最大公约数

本实验将求多个数字的最小公约数。

知识点
  • 递归
  • for
适合人群

本课程属于基础课程。需要用户掌握 Go 语言编程基础知识、计算机基础知识和 Linux 环境的基本用法。

许可证

内容编译来自 psampaz和30s-seconds-of-golang 的开源项目,它们分别使用 CC BY-SA 4.0 License,CC0-1.0 License,为了能够适合实验楼在线环境,我们修改了部分解题和单元测试代码。

代码实例

公约数是指能同时整除几个整数的数,本实验我们将两两遍历,把求得的公约数作为下一次循环的一项进行计算,下面是一个例子。

package main

import "fmt"

func gcd(x, y int) int {
    if y == 0 {
        return x
    }
    return gcd(y, x%y)
}

func GCD(nums ...int) int {
    r := nums[0]
    for _, num := range nums[1:] {
        r = gcd(r, num)
    }
    return r
}
func main() {
    r1 := GCD(8, 36)               // 4
    r2 := GCD([]int{11, 8, 32}...) // 1  这里的...为了将切片展开成可变参数
    fmt.Println(r1, r2)
}

该程序的功能:

  • 使用 gcd 函数创建一个递归。
  • 递归的返回条件是当 y 为 0 时,返回 x。
  • 使用 range 和 gcd 函数来为给定的每一个数字进行计算。

将代码保存为/home/project/gcd.go文件。

运行程序

打开 WebIDE 的 Terminal 终端,输入以下命令查看输出:

go run gcd.go

图片描述

总结

本实验我们学习了如何求多个数字的最大公约数,下个实验我们将学习如何求多个数字的最小公倍数。

求多个数字的最小公倍数

两个或多个整数公有的倍数叫做它们的公倍数,最小公倍数是指其中除 0 以外最小的一个公倍数,本实验将实现通过递归求解多个数字的最小公倍数。

知识点
  • for
  • 递归
适合人群

本课程属于基础课程。需要用户掌握 Go 语言编程基础知识、计算机基础知识和 Linux 环境的基本用法。

许可证

内容编译来自 psampaz和30s-seconds-of-golang 的开源项目,它们分别使用 CC BY-SA 4.0 License,CC0-1.0 License,为了能够适合实验楼在线环境,我们修改了部分解题和单元测试代码。

代码实例

本实验我们将使用递归来获得多个数字的最小公倍数,下面是一个例子。

package main

import (
    "fmt"
)

func gcd(x, y int) int {
    if y == 0 {
        return x
    }
    return gcd(y, x%y)
}

func LCM(nums ...int) int {
    x := nums[0]
    for _, y := range nums[1:] {
        x = (x * y) / gcd(x, y)
    }
    return x
}
func main() {
    r1 := LCM(12, 7)                // 84
    r2 := LCM([]int{1, 3, 4, 5}...) // 60
    fmt.Println(r1, r2)
}

该程序的功能:

  • 使用 gcd 函数创建一个递归。
  • 递归的返回条件是当 y 为 0 时,返回 x。
  • 使用 range 和 gcd 函数来为给定的每一个数字进行计算。

将代码保存为/home/project/lcm.go文件。

运行程序

打开 WebIDE 的 Terminal 终端,输入以下命令查看输出:

go run lcm.go

图片描述

总结

本实验我们讲解了如何求多个数组的最小公倍数,下个实验我们将学习返回指定范围内的切片。

返回指定范围内的切片

本实验将给定一个起始终止,递增的范围。返回指定范围的切片。

知识点
  • range
  • fmt
适合人群

本课程属于基础课程。需要用户掌握 Go 语言编程基础知识、计算机基础知识和 Linux 环境的基本用法。

许可证

内容编译来自 psampaz和30s-seconds-of-golang 的开源项目,它们分别使用 CC BY-SA 4.0 License,CC0-1.0 License,为了能够适合实验楼在线环境,我们修改了部分解题和单元测试代码。

代码实例

本实验我们输入起始,终止和递增的范围,来生成指定范围内的切片,下面是一个例子。

package main

import (
    "fmt"
)

func IntRange(f, t, s int) []int {
    arr := make([]int, (t-f+1)/s)
    for i := range arr {
        arr[i] = i*s + f
    }
    return arr
}
func main() {
    r1 := IntRange(0, 9, 2)
    fmt.Println(r1)
}

该程序的功能:

  • 使用 make 创建一个适合大小的切片
  • 使用 range 来迭代切片并且填充。

将代码保存为/home/project/intRange.go文件。

运行程序

打开 WebIDE 的 Terminal 终端,输入以下命令查看输出:

go run intRange.go

图片描述

总结

本实验我们学习了如何返回指定范围内的切片,下一个实验我们将讲解如何获得指定范围内的随机切片。

返回指定范围内的随机切片

本实验我们将分别输入起始范围,终止范围来实现生成指定范围内的随机数组,这里随机我们使用的是 math/rand。

知识点
  • math/rand
适合人群

本课程属于基础课程。需要用户掌握 Go 语言编程基础知识、计算机基础知识和 Linux 环境的基本用法。

许可证

内容编译来自 psampaz和30s-seconds-of-golang 的开源项目,它们分别使用 CC BY-SA 4.0 License,CC0-1.0 License,为了能够适合实验楼在线环境,我们修改了部分解题和单元测试代码。

代码实例

本实验我们将使用math/rand包来生成指定范围的随机切片,下面是一个例子。

package main

import (
    "fmt"
    "math/rand"
)

func RandIntSliceInRange(min, max, n int) []int {
    arr := make([]int, n)

    for i := range arr {
        arr[i] = rand.Intn(max-min) + min //随机范围切片
    }
    return arr
}
func main() {
    r1 := RandIntSliceInRange(12, 35, 10)
    fmt.Println(r1)
}

该程序的功能:

  • 使用make创建一个合适大小的切片。
  • 使用 range 来遍历切片,并且用 rand.Intn()来生成指定范围内的随机数添加到切片中。

将代码保存为/home/project/randIntSliceInRange.go文件。

运行程序

打开 WebIDE 的 Terminal 终端,输入以下命令查看输出:

go run randIntSliceInRange.go

图片描述

总结

本实验我们使用 rand 生成了一个指定范围内的切片,下一个实验我们将讲解如何求集合中的中位数。

求集合中的中位数

中位数是按顺序排列的一组数据中居于中间位置的数,本实验我们将通过使用 sort 函数和 for 循环获得集合的中位数。

知识点
  • sort
  • for
适合人群

本课程属于基础课程。需要用户掌握 Go 语言编程基础知识、计算机基础知识和 Linux 环境的基本用法。

许可证

内容编译来自 psampaz和30s-seconds-of-golang 的开源项目,它们分别使用 CC BY-SA 4.0 License,CC0-1.0 License,为了能够适合实验楼在线环境,我们修改了部分解题和单元测试代码。

代码实例

Go 语言 Sort 包下的 Float64s 函数可以对输入的集合进行升序排序列,用法如下:

func Float64s(a []float64)

下面我们将使用 sort 来求给定集合的中位数,下面是一个例子。

package main

import (
    "fmt"
    "math"
    "sort"
)

func Median(nums ...float64) float64 {
    m, n := int(math.Floor(float64(len(nums))/2.0)),
        nums[:]   //Floor将结果向下取整
    sort.Float64s(n)

    if len(nums)%2 == 0 {
        return (n[m-1] + n[m]) / 2.0
    }
    return n[m]
}
func main() {
    r1 := Median(5.0, 6.0, 50.0, 1.0, -5.0)
    r2 := Median(1.0, 2.0, 4.0, 5.0)
    fmt.Println("中位数:", r1, "中位数:", r2)
}

该程序的功能:

  • 找到中位数 m。
  • 使用 sort.Float64s 来对 nums 进行排序。
  • 分情况进行判断,如果是偶数则返回俩个中位数的平均数。

将代码保存为 /home/project/median.go 文件。

运行程序

打开 WebIDE 的 Terminal 终端,输入以下命令查看输出:

go run median.go

图片描述

总结

本实验我们学习了使用 sort 包和 for 循环获得集合中位数的方法,了解他们的实验原理我们才能更好的使用他们。

转换 Lisp 式字符串

挑战介绍

把输入的字符串转换为烤肉串式类型。

挑战内容

本次挑战中,你需要把输入的字符串转换为烤肉串式类型。

输出参考格式为:

# 输入
some text
# 输出
some-text

挑战要求

  • 请自行在环境主目录/home/project下新建 convert_lisp.go 文件,并复制示例代码到文件中完成补充。补充完整后点击「提交检测」,系统将会给出判定结果。

图片描述

示例代码

package main

import (
    "bufio"
    "fmt"
    "log"
    "os"
    "strings"
)

func main() {
    fmt.Println("Input strings: ")
    inp := bufio.NewReader(os.Stdin)

    // res 为输出的Lisp字符串
    // s为输入的字符串
    var res string
    s, err := inp.ReadString('\n')
    if err != nil {
        log.Fatal("wrong input")
    }
    // 待补充部分


    fmt.Println(res)
}

小贴士

  • 可以使用 strings 包下的功能函数来进行处理。
  • 为了保证能被系统准确检测,挑战中的每一句话都非常重要,请仔细阅读。跳跃式浏览易导致挑战无法按要求通过。
参考代码

以下内容仅供参考,为了能有更好的学习效果,请尽量按自己的想法来完成挑战。

参考答案

package main

import (
    "bufio"
    "fmt"
    "log"
    "os"
    "strings"
)

func main() {
    fmt.Println("Input strings: ")
    inp := bufio.NewReader(os.Stdin)

    // res 为输出的Lisp字符串
    // s为输入的字符串
    var res string
    s, err := inp.ReadString('\n')
    if err != nil {
        log.Fatal("wrong input")
    }
    res = strings.Join(strings.Fields(s), "-")
    fmt.Println(res)
}

版权说明

内容编译来自 psampaz和30s-seconds-of-golang 的开源项目,它们分别使用 CC BY-SA 4.0 License,CC0-1.0 License,为了能够适合实验楼在线环境,我们修改了部分解题和单元测试代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1870916.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【可控图像生成系列论文(五)】ControlNet 和 IP-Adapter 之间的区别有哪些?

系列文章目录 【可控图像生成系列论文&#xff08;一&#xff09;】 简要介绍了 MimicBrush 的整体流程和方法&#xff1b;【可控图像生成系列论文&#xff08;二&#xff09;】 就MimicBrush 的具体模型结构、训练数据和纹理迁移进行了更详细的介绍。【可控图像生成系列论文&…

MySQL高级-索引-设计原则小结

文章目录 1、设计原则2、索引小结2.1、索引概述2.2、索引结构2.3、索引分类2.4、索引语法2.5、SQL性能分析2.6、索引使用2.7、索引设计原则 1、设计原则 针对于数据量较大&#xff0c;且查询比较频繁的表建立索引。针对于常作为查询条件&#xff08;where&#xff09;、排序&am…

东软睿驰总裁兼CTO杜强受邀出席 CICV 2024智能网联汽车技术首脑(CTO)闭门峰会

近日&#xff0c;第十一届国际智能网联汽车技术年会&#xff08;CICV 2024&#xff09;在北京举办&#xff0c;会议期间组织智能网联汽车技术首脑&#xff08;CTO&#xff09;闭门峰会&#xff0c;邀请40余位技术领袖围绕智能网联汽车产业生态建设以及智能网联汽车数据、算力和…

使用k8s变更线上版本号

第一步&#xff0c;在镜像仓库中找到历史版本号 第二步&#xff0c;在rancher中在工作负载里 第三步&#xff0c;在rancher找到这个版本号&#xff0c;可以更改之前的版本号 这样就可以很方便的退回到之前的版本了

【技巧】如何检查多个GPU之间是否支持P2P通信

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 需要用到cuda_samples&#xff1a;GitHub - NVIDIA/cuda-samples 该工具的详细解释可以看这个&#xff1a; 【知识】详细介绍 CUDA Samples 示例工程…

时间序列分析入门:概念、模型与应用【ARMA、ARIMA模型】

在这篇博客中&#xff0c;我们将全面探讨时间序列分析的基本概念和分类&#xff0c;深入理解平稳性及其检验方法&#xff0c;并介绍自回归模型&#xff08;AR&#xff09;、滑动平均模型&#xff08;MA&#xff09;、自回归滑动平均模型&#xff08;ARMA&#xff09;以及自回归…

吐血推荐!3款视频生成工具,全部国产,都免费

AI视频大模型的爆发&#xff0c;让创作爆款视频不再是专业人士的能力。 今天二师兄给大家推荐3款免费的视频生成工具。 01 可灵 推荐指数 &#xff1a; 五颗星 先看效果 可灵大模型测试 可灵大模型是快手AI团队自主研发的视频生成大模型&#xff0c;具备强大的视频创作能力&a…

FlinkX学习

FlinkX学习 FlinkX安装 由于flinkx已经改名chunjun 官网已不存在 (https://gitee.com/lugela/flinkx#flinkx)这里可以看到flinkx的操作文档 1、上传并解压 unzip flinkx-1.10.zip -d /usr/local/soft/2、配置环境变量 FLINKX_HOME/usr/local/soft/flinkx-1.10 export PATH$F…

PHP-CGI的漏洞(CVE-2024-4577)

通过前两篇文章的铺垫&#xff0c;现在我们可以了解 CVE-2024-4577这个漏洞的原理 漏洞原理 CVE-2024-4577是CVE-2012-1823这个老漏洞的绕过&#xff0c;php cgi的老漏洞至今已经12年&#xff0c;具体可以参考我的另一个文档 简单来说&#xff0c;就是使用cgi模式运行的PHP&…

零拷贝技术(zero copy),DMA,mmap,sendfile

在一些高性能的IO场景下我们经常能听到零拷贝技术&#xff0c;这是个不错的话题。 零拷贝指的是内核态与用户态之间的数据拷贝&#xff0c;而这两个区域的数据拷贝只能依靠CPU&#xff0c;但是CPU最重要的作用应该是运算。 一、DMA的由来 在没有DMA之前&#xff0c;磁盘的IO…

【NPS】哑终端设备如何实现域VLAN动态分配

在【NPS】微软NPS配置802.1x&#xff0c;验证域账号&#xff0c;动态分配VLAN&#xff08;有线网络续篇&#xff09;中&#xff0c;已经通过C3PL策略配置实现了802.1x验证没有通过时&#xff0c;自动分配一个Guest VLAN&#xff0c;以确保用户至少能够访问基本的网络服务。问题…

数字时代的文化革命:Facebook的社会影响

随着数字技术的飞速发展和互联网的普及&#xff0c;社交网络如今已成为人们日常生活中不可或缺的一部分。在众多社交平台中&#xff0c;Facebook作为最大的社交网络之一&#xff0c;不仅连接了全球数十亿用户&#xff0c;更深刻影响了人们的社会互动方式、文化认同和信息传播模…

展开说说:Android列表之RecyclerView

RecyclerView 它是从Android5.0出现的全新列表组件&#xff0c;更加强大和灵活。用于显示列表形式 (list) 或者网格形式 (grid) 的数据&#xff0c;替代ListView和GridView成为Android主流的列表组件。可以说Android客户端只要有表格的地方就有RecyclerView。 RecyclerView 内…

【linux】使用vnc连接远程桌面,需要安装tigervnc,并在服务端期待,然后在客户端使用tigervnc-viewer进行连接即可

vnc 远程设置方法 需要服务端安装软件&#xff1a; sudo apt install -y tigervnc-standalone-server# 先配置密码使用&#xff1a; tightvncpasswd启动服务&#xff0c;禁用本机 vncserver -localhost no -geometry 1924x1080 :1客户端安装软件&#xff1a; sudo apt insta…

JavaScript高级程序设计(第四版)--学习记录之基本引用类型

Date Date类型将日期保存为自协调世界时间1970年1月1日午夜至今所经过的毫秒数。 创建日期对象 let now new Date() Date.parse()方法接收一个表示日期的字符串参数&#xff0c;尝试将这个字符串转换为表示该日期的毫秒数。 let time new Date(Date.parse("May 24,2024&…

Jmeter+InfluxDB+Grafana性能测试数据展示

JmeterInfluxDBGrafana提供了一种更好的对Jmeter压测结果的实时监控展示。可以理解为数据源产生的数据加上时间记录并存储&#xff0c;然后使用各种开源图表组件进行展示。实现jmeter报告的更好的可视化展示 1&#xff09;方便测试结果数据落地以及更好的分析 2&#xff09;将…

超好用的思维导图—万兴亿图脑图 v10解锁版安装教程 (思维导图软件和头脑风暴工具)

前言 万兴亿图脑图 (Wondershare EdrawMind) 是一款多平台协作思维导图软件和头脑风暴工具,亿图思维导图提供丰富的布局,样式,主题及配色方案,集成拥有数万幅原创思维导图作品的思维导图社区,涵盖教育,职场,自我提升等各大领域精华知识.支持会议演示,多端创作,云端存储,导图分…

BioCLIP:物种图像的基础视觉模型

从无人机到个人手机&#xff0c;各种相机收集的自然世界图像是越来越丰富的生物信息来源。从图像中提取生物相关信息用于科学的计算方法和工具激增&#xff0c;尤其是计算机视觉。然而&#xff0c;其中大多数都是为特定任务设计的&#xff0c;不容易适应或扩展到新的问题、环境…

第30课 绘制原理图——放置网络标签

什么是网络标签&#xff1f; 我们在很多电路图中都能看到&#xff0c;为了让图纸更加简洁&#xff0c;并不是每一根导线都要确确实实地画出来。可以在导线悬空的一端添加一个名称标签&#xff0c;接着在另一根导线的悬空一端添加上一个同名的名称标签&#xff0c;那么就可以让…

1.回溯算法.基础

1.回溯算法 基础知识题目1.组合2.组合-优化3.组合总和|||4.电话号码和字母组合5.组合总和6.组合总和II7.分割回文串8.复原IP地址 基础知识 回溯法也可以叫做回溯搜索法&#xff0c;它是一种搜索的方式。回溯是递归的副产品&#xff0c;只要有递归就会有回溯 因为回溯的本质是穷…