当前位置: 首页 > news >正文

Golang | Leetcode Golang题解之第127题单词接龙

题目:

题解:

func ladderLength(beginWord string, endWord string, wordList []string) int {wordId := map[string]int{}graph := [][]int{}addWord := func(word string) int {id, has := wordId[word]if !has {id = len(wordId)wordId[word] = idgraph = append(graph, []int{})}return id}addEdge := func(word string) int {id1 := addWord(word)s := []byte(word)for i, b := range s {s[i] = '*'id2 := addWord(string(s))graph[id1] = append(graph[id1], id2)graph[id2] = append(graph[id2], id1)s[i] = b}return id1}for _, word := range wordList {addEdge(word)}beginId := addEdge(beginWord)endId, has := wordId[endWord]if !has {return 0}const inf int = math.MaxInt64distBegin := make([]int, len(wordId))for i := range distBegin {distBegin[i] = inf}distBegin[beginId] = 0queueBegin := []int{beginId}distEnd := make([]int, len(wordId))for i := range distEnd {distEnd[i] = inf}distEnd[endId] = 0queueEnd := []int{endId}for len(queueBegin) > 0 && len(queueEnd) > 0 {q := queueBeginqueueBegin = nilfor _, v := range q {if distEnd[v] < inf {return (distBegin[v]+distEnd[v])/2 + 1}for _, w := range graph[v] {if distBegin[w] == inf {distBegin[w] = distBegin[v] + 1queueBegin = append(queueBegin, w)}}}q = queueEndqueueEnd = nilfor _, v := range q {if distBegin[v] < inf {return (distBegin[v]+distEnd[v])/2 + 1}for _, w := range graph[v] {if distEnd[w] == inf {distEnd[w] = distEnd[v] + 1queueEnd = append(queueEnd, w)}}}}return 0
}

相关文章:

Golang | Leetcode Golang题解之第127题单词接龙

题目&#xff1a; 题解&#xff1a; func ladderLength(beginWord string, endWord string, wordList []string) int {wordId : map[string]int{}graph : [][]int{}addWord : func(word string) int {id, has : wordId[word]if !has {id len(wordId)wordId[word] idgraph a…...

微服务中feign远程调用相关的各种超时问题

1. 引言 在spring cloud微服中&#xff0c;feign远程调用可能是大家每天都接触到东西&#xff0c;但很多同学却没咋搞清楚这里边的各种超时问题&#xff0c;生产环境可能会蹦出各种奇怪的问题。 首先说下结论&#xff1a; 1)只使用feign组件&#xff0c;不使用ribbion组件&…...

springboot整合chatgpt,并且让其可以记录上下文

整合很简单&#xff0c;不过需要几个小条件 1.必须要有openai官方的key 2.国内需要有代理服务器或者国外的服务器把项目部署出去也没问题 我没有使用spring的springAI&#xff0c;听说很方便&#xff0c;日后有机会去体验体验&#xff0c;我今天用了两种方式整合了gpt 1.Ch…...

CTP前端:解码数字世界的魔法师

CTP前端&#xff1a;解码数字世界的魔法师 CTP前端&#xff0c;一个充满神秘与魅力的职业&#xff0c;他们在数字世界中挥舞着魔法棒&#xff0c;创造着令人惊叹的奇迹。那么&#xff0c;CTP前端究竟是做什么的呢&#xff1f;让我们从四个方面、五个方面、六个方面和七个方面&…...

rabbitmq的交换机类型以及他们的区别

RabbitMQ中有四种主要的交换机类型&#xff0c;它们是&#xff1a;Direct&#xff0c;Topic&#xff0c;Fanout&#xff0c;Headers。 Direct&#xff08;直连交换机&#xff09;&#xff1a;接收到消息后&#xff0c;会将消息发送到与消息的routing key完全匹配的队列上。Dire…...

理解不同层的表示(layer representations)

在机器学习和深度学习领域&#xff0c;特别是在处理音频和自然语言处理&#xff08;NLP&#xff09;任务时&#xff0c;"层的表示"&#xff08;layer representations&#xff09;通常是指神经网络不同层在处理输入数据时生成的特征或嵌入。这些表示捕获了输入数据的…...

原生js访问http获取数据的方法

在原生JavaScript中&#xff0c;直接通过浏览器端的JavaScript访问HTTP接口获取数据通常涉及XMLHttpRequest对象或现代的fetch API。 1. 使用XMLHttpRequest XMLHttpRequest是一个老旧的API&#xff0c;但在某些情况下仍然很有用。以下是一个简单的例子&#xff1a; javascr…...

Windows 2000 Server:安全配置终极指南

"远古技术&#xff0c;仅供娱乐" &#x1f4ad; 前言&#xff1a;Windows 2000 服务器在当时的市场中占据了很大的比例&#xff0c;主要原因包括操作简单和易于管理&#xff0c;但也经常因为安全性问题受到谴责&#xff0c;Windows 2000 的安全性真的那么差吗&#x…...

基于 FastAI 文本迁移学习的情感分类(93%+Accuracy)

前言 系列专栏:【深度学习:算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域,讨论了各种复杂的深度神经网络思想,如卷积神经网络、循环神经网络、生成对抗网络、门控循环单元、长短期记…...

集成Google Authenticator实现多因素认证(MFA)

目录 参考1、应用背景2、多因素认证3、谷歌google authenticator集成用法3.1、原理3.2、 MFA绑定3.2.1、 用户输入用户名密码登录3.2.2、检查是否已经绑定MFA&#xff08;检查数据库是否保存该用户的google secret&#xff09;3.2.3、谷歌身份证认证器扫描绑定3.2.4、手动测试验…...

网关(Gateway)- 自定义过滤器工厂

自定义过滤工厂类 DemoGatewayFilterFactory package com.learning.springcloud.custom;import org.apache.commons.lang.StringUtils; import org.springframework.cloud.gateway.filter.GatewayFilter; import org.springframework.cloud.gateway.filter.GatewayFilterChai…...

HTML静态网页成品作业(HTML+CSS)—— 香奈儿香水介绍网页(1个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有1个页面。 二、作品演示 三、代…...

C++11 lambda表达式和包装器

C11 lambda表达式和包装器 一.lambda表达式1.lambda表达式的引入2.基本语法和使用1.基本语法2.使用1.传值捕捉的错误之处2.传引用捕捉 3.lambda表达式的底层原理4.lambda的特殊之处5.lambda配合decltype的新玩法 二.function包装器1.概念2.包装函数1.包装普通函数2.包装成员函数…...

3. MySQL 数据表的基本操作

文章目录 【 1. MySQL 创建数据表 】【 2. MySQL 查看表 】2.1 查看表的属性DESCRIBE/DESC 以表格的形式展示表属性SHOW CREATE TABLE 以SQL语句的形式展示表属性 2.2 查看表的内容 【 3. MySQL 修改数据表结构 】3.1 修改表名3.2 修改表字符集3.3 添加字段在末尾添加字段在开头…...

Linux命令篇(一):文件管理部分

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; 文章目录 1、cat命令常用参…...

IP协议1.0

基本概念&#xff1a; • 主机: 配有IP地址, 但是不进⾏路由控制的设备; • 路由器: 即配有IP地址, ⼜能进⾏路由控制; • 节点: 主机和路由器的统称; IP协议的报头 • 4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4. • 4位头部⻓度(header length): IP头部的⻓…...

源码编译安装LNMP

LNMP包含&#xff1a; linux、Nginx、Mysql、php LNMP的工作原理 &#xff1a; 由客户端发送页面请求给Nginx&#xff0c;Nginx会根据location匹配用户访问请求的URL路径判断是静态还是动态&#xff0c;静态的一般是以 .html .htm .css .shtml结尾&#xff0c;动态的一般是以 .…...

安装Chrome扩展程序来 一键禁用页面上的所有动画和过渡。有那些扩展程序推荐一下

要安装Chrome扩展程序来一键禁用页面上的所有动画和过渡&#xff0c;以下是一些推荐的扩展程序&#xff1a; Toggle CSS Animations and Transitions 功能&#xff1a;此扩展程序允许用户轻松地在网页上切换CSS动画和过渡的开启与关闭状态。使用方法&#xff1a;安装后&#x…...

读人工智能时代与人类未来笔记19_读后总结与感想兼导读

1. 基本信息 人工智能时代与人类未来 (美)亨利基辛格,(美)埃里克施密特,(美)丹尼尔胡滕洛赫尔 著 中信出版社,2023年6月出版 1.1. 读薄率 书籍总字数145千字&#xff0c;笔记总字数39934字。 读薄率39934145000≈27.5% 1.2. 读厚方向 千脑智能 脑机穿越 未来呼啸而来 …...

个人影响力

华人出了个黄仁勋&#xff0c;世界级影响力&#xff0c;还是近代华人历史首次出现具有如此影响力的人。凭借的逻辑是什呢&#xff1f;在人工智能领域有巨大影响力。...

SwiftHub性能优化:内存管理、网络缓存与响应速度提升

SwiftHub性能优化&#xff1a;内存管理、网络缓存与响应速度提升 【免费下载链接】SwiftHub GitHub iOS client in RxSwift and MVVM-C clean architecture 项目地址: https://gitcode.com/gh_mirrors/sw/SwiftHub SwiftHub作为一款基于RxSwift和MVVM-C架构的GitHub iOS…...

AI 培训报名:主流机构专业度对比分析

引言 随着人工智能技术的快速发展&#xff0c;AI 培训市场也日益火爆。无论是企业还是个人&#xff0c;都希望通过专业的培训来提升对 AI 技术的应用能力。然而&#xff0c;当前 AI 培训市场鱼龙混杂&#xff0c;机构众多&#xff0c;质量参差不齐。企业和个人在选择 AI 培训机…...

什么是 Harness Engineering?把 Prompt、Workflow、Eval 串成系统的那层骨架

点击上方 前端Q&#xff0c;关注公众号回复加群&#xff0c;加入前端Q技术交流群上一篇我们先把问题抛出来了&#xff1a; 为什么现在大家都在聊 Agent、Workflow、AI Coding&#xff0c;可真正决定系统上限的&#xff0c;往往不是模型本身&#xff0c;而是模型外那层工程骨架。…...

智能媒体捕获:猫抓cat-catch的资源拦截与解析技术方案

智能媒体捕获&#xff1a;猫抓cat-catch的资源拦截与解析技术方案 【免费下载链接】cat-catch 猫抓 chrome资源嗅探扩展 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓cat-catch作为一款开源浏览器扩展&#xff0c;通过深度网络请求分析与流媒体协议…...

深入解析DDR内存训练:从FLY BY布线到信号对齐

1. 为什么DDR内存需要训练&#xff1f; 当你按下电脑开机键的那一刻&#xff0c;主板上的DDR内存就开始了一段奇妙的"热身运动"。这个热身过程专业术语叫做内存训练&#xff08;Memory Training&#xff09;&#xff0c;它是确保内存稳定运行的关键步骤。想象一下&a…...

用Matlab+Yalmip+Gurobi搞定微电网优化配置:从电工杯A题到实战避坑指南

MatlabYalmipGurobi微电网优化实战&#xff1a;从建模到竞赛应用的完整指南 微电网优化配置是能源系统研究中的经典问题&#xff0c;也是数学建模竞赛中的高频考点。去年电工杯A题就曾让参赛者头疼——如何在满足负荷需求的前提下&#xff0c;合理配置风光储系统&#xff0c;实…...

基于Node.js构建HunyuanVideo-Foley模型调度与管理中间件

基于Node.js构建HunyuanVideo-Foley模型调度与管理中间件 1. 引言&#xff1a;音效生成服务的挑战与机遇 在视频制作和游戏开发领域&#xff0c;高质量的音效生成(HunyuanVideo-Foley)已成为提升作品沉浸感的关键要素。随着AI模型能力的提升&#xff0c;单个音效生成请求的处…...

Qwen2.5-72B-GPTQ-Int4惊艳效果:128K上下文长文档摘要与重点提取

Qwen2.5-72B-GPTQ-Int4惊艳效果&#xff1a;128K上下文长文档摘要与重点提取 1. 模型概述与核心能力 1.1 Qwen2.5系列模型简介 Qwen2.5是通义千问大模型系列的最新版本&#xff0c;提供了从0.5B到72B不同参数规模的预训练和指令调优模型。相比前代Qwen2&#xff0c;这个版本…...

s2-pro效果展示:高语速新闻播报(220字/分钟)清晰度实测

s2-pro效果展示&#xff1a;高语速新闻播报&#xff08;220字/分钟&#xff09;清晰度实测 1. 专业语音合成新标杆 s2-pro作为Fish Audio开源的专业级语音合成模型镜像&#xff0c;正在重新定义文本转语音的技术标准。不同于常见的聊天式语音工具&#xff0c;s2-pro专注于提供…...

Git内部原理浅析:对象、引用与分支合并策略

Git内部原理浅析&#xff1a;对象、引用与分支合并策略 在软件开发中&#xff0c;Git已成为版本控制系统的标准工具&#xff0c;但其强大的功能背后隐藏着精妙的设计原理。理解Git的内部机制&#xff0c;尤其是对象模型、引用系统以及分支合并策略&#xff0c;不仅能提升开发效…...