面试经典150题(82-83)

leetcode 150道题 计划花两个月时候刷完,今天(第四十一天)完成了2道(82-83)150:

82.(133. 克隆图)题目描述:

给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。
图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。class Node {public int val;public List<Node> neighbors;
}

第一版(这个之前有过是拷贝二叉树的时候和这个类似,利用map 映射就是当前节点和当前节点的复制节点)

class Solution {Map<Node,Node> map=new HashMap();public Node cloneGraph(Node node) {if(node==null){return null;}if(map.containsKey(node)){return map.get(node);}Node cloneNode= new Node(node.val);map.put(node,cloneNode);for(Node neighbor:node.neighbors){cloneNode.neighbors.add(cloneGraph(neighbor));}return map.get(node);}
}

第83题顺序应该是 leetcode 的 《399. 除法求值》但是实在是看不懂,找了一个类似的比这个简单的,但是还是看不懂,只是把解题的代码默写了一遍。。

83.(990. 等式方程的可满足性)题目描述:

给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:"a==b""a!=b"。在这里,a 和 b 是小写字母(不一定不同),表示单字母变量名。
只有当可以将整数分配给变量名,以便满足所有给定的方程时才返回 true,否则返回 false。 

第一版(解题默写版)

class Solution {public boolean equationsPossible(String[] equations) {// 26 字母全部创建为节点int[] nodes=new int[26];// 将初始化节点的父节点设置为自己for(int i=0;i<26;i++){nodes[i]=i;}// 先遍历相等的,建立关系for(String equation:equations){char[] chars=equation.toCharArray();if(chars[1]=='='){int index1=chars[0]-'a';int index2=chars[3]-'a';union(nodes,index1,index2);}}// 再遍历不相等的看是否冲突for(String equation:equations){char[] chars=equation.toCharArray();if(chars[1]=='!'){int index1=chars[0]-'a';int index2=chars[3]-'a';if(find(nodes,index1)==find(nodes,index2)){return false;}}}return true;}// 合并节点,将第一个的父节点指向第二个public void union(int[] nodes,int index1,int index2){nodes[find(nodes,index1)]=find(nodes,index2);}// 查找对应节点的父节点public int find(int[] nodes,int index){while(nodes[index]!=index){nodes[index]=nodes[nodes[index]];index=nodes[index];}return index;}
}

图这一块也太难了。。。。好折磨,就这个 83 《399. 除法求值》卡了我 好几天,每天一打开一看。。还是不会太打击人了。。明天开始,我准备把图这一块的先跳过去。。

加油,这几天真的太打击人了,但是今天leetcode 周赛我做出来了两道,哈哈哈进步了。

早日跳槽!!!

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

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

相关文章

ZZULIOJ 1118: 数列有序

题目描述 一个非递减有序的整型数组有n个元素&#xff0c;给定一个整数num&#xff0c;将num插入该序列的适当位置&#xff0c;使序列仍保持非递减有序。 要求定义一个函数insert()&#xff0c;将整数num插入在数组a的适当位置上&#xff0c;函数原型如下&#xff1a; void …

面向工业的复合自动机器学习

一、工业数据收集与处理 在面向工业的复合自动机器学习中&#xff0c;数据的收集和处理是至关重要的第一步。工业数据通常具有大规模、高维度和非线性的特点&#xff0c;需要运用先进的数据处理技术进行有效的管理和分析。这包括数据清洗、数据预处理、数据增强等一系列操作&a…

【Python】使用pyinstaller打包为Windows平台的xxx.exe方法步骤

pyinstaller 是一个用于将 Python 代码打包成独立可执行文件的工具&#xff0c;它可以将 Python 代码打包成 Windows、Linux、Mac 等平台的可执行文件&#xff0c;方便用户在不同环境中运行。 pyinstaller用法&#xff1a; 1.安装pyinstaller库&#xff0c;这里以PyCharm环境为…

ZZULIOJ 1113: 递归调用的次数统计(函数专题)

题目描述 如下程序的功能是计算 Fibonacci数列的第n项。函数fib()是一个递归函数。请你改写该程序&#xff0c;计算第n项的同时&#xff0c;统计调用了多少次函数fib&#xff08;包括main()对fib()的调用&#xff09;。 #include<stdio.h> int fib(int k); int main() {…

ACM论文LaTeX模板解析(一)| 模板下载与安装

本文收录于专栏&#xff1a;ACM 论文 LaTeX模板解析&#xff0c;本专栏将会围绕ACM 论文 LaTeX模板解析持续更新。欢迎点赞收藏关注&#xff01; 文章目录 1. 引言2. 下载方式 1. 引言 计算机械协会&#xff08;ACM&#xff0c;Association for Computing Machinery&#xff0…

封装一个ajax请求

这段代码定义了一个名为ajaxRequest的函数&#xff0c;接收三个参数&#xff1a;URL、HTTP方法&#xff08;可选&#xff09;和要发送的数据。该函数会创建一个XMLHttpRequest对象并进行相应配置&#xff0c;然后根据传入的参数发起网络请求。最后通过Promise来处理请求成功或失…

vue3+vant+cropper.js实现移动端图片裁剪功能

一、前言 最近做项目中遇到一个需求&#xff0c;需要对海报图片按照一定的比例进行裁剪并上传到oss。一开始这个需求思路有两个&#xff0c;使用canvas原生或者寻找现成的第三方库&#xff0c;对比了一番觉得canvas实现时间耗费较长&#xff0c;且秉承着不重复造轮子的原则&am…

docker镜像分层

Docker 镜像是由一系列分层&#xff08;layers&#xff09;组成的。每一层都包含了文件系统的一部分或一个操作指令。这种分层结构使得镜像的构建、分发和存储变得更加高效。当你构建一个新的镜像时&#xff0c;Docker 会尽可能地重用已经存在的层&#xff0c;从而减少重复工作…

UG装配-WAVE几何链接器

自上向下&#xff08;自顶向下&#xff09;设计 先将产品主要结构&#xff08;或主要部件&#xff09;建立好&#xff0c;然后再根据要求设计其它组件&#xff0c;使每个组件之间有数据关联&#xff0c;适用于产品开发初期&#xff0c;便于修改&#xff0c;修改组件数据后&…

基于JavaWeb的酒店管理系统

基于JavaWeb的酒店管理系统 文章目录 基于JavaWeb的酒店管理系统系统介绍技术选型成果展示源码获取账号地址及其他说明 系统介绍 基于JavaWeb的酒店管理系统是为酒店打造的管理平台&#xff0c;其主要功能有管理员登陆、客房预订、客房入住、房间管理、数据查询(预订单查询、入…

PySide6/PyQt6中的时间管理类:QTime的使用方法

文章目录 📖 介绍 📖🏡 环境 🏡📒 使用方法 📒📝 创建QTime对象📝 常用方法⚓️ 相关链接 ⚓️📖 介绍 📖 QTime是PySide6中用于处理时间段的类,可以用来表示一天中的时间,例如小时、分钟和秒。它提供了许多操作和格式化时间的功能,使得处理时间变得更加…

mysql-实战案例 (超详细版)

&#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;重拾MySQL &#x1f379;文章作者技术和水平很有限&#xff0c;如果文中出现错误&am…

VL53L4CD TOF开发(1)----驱动TOF进行测距

VL53L4CX TOF开发.1--驱动TOF进行测距 概述视频教学样品申请完整代码下载主要特点硬件准备技术规格系统框图应用示意图生成STM32CUBEMX选择MCU串口配置IIC配置 XSHUTX-CUBE-TOF1演示结果 概述 VL53L4CD适用于接近测量和短距离测量&#xff0c;可实现从仅仅1 mm到1300 mm的超精…

SAP SD-DN-MM 交货单相关物料凭证的视图的日期问题

眼下有个需求 获取交货单对应的物料凭证的过账日期BLDAT。 同步BW数据过去 新增一个数据库视图 但是实际使用时&#xff0c;有效部分仅本月&#xff0c;再选择条件里面要加上 MATdoc-bldat > sy-datum - sydatum6(2). 于是使用ST05 跟踪了一下&#xff0c;发现在DD28S…

echarts——折线图实现不同区间不同颜色+下钻/回钻功能——技能提升

echarts——折线图实现不同区间不同颜色下钻/回钻功能——技能提升 需求场景解决步骤1&#xff1a;安装echarts插件解决步骤2&#xff1a;html代码解决步骤3&#xff1a;封装option配置和initChart渲染方法解决步骤4&#xff1a;回钻功能 需求场景 最近在写后台管理系统时&…

C++ 多线程编程和线程池

c 多线程需要包含thread头文件 #include <thread>std::thread t(function_name, args...);多线程调用函数代码如下 #include <iostream> #include <thread> void print_message() { std::cout << "Hello, world!" << std::endl;…

Dubbo 3.x结合Zookeeper实现远程服务基本调用

ZooKeeper和Dubbo是两个在分布式系统中常用的开源框架&#xff0c;它们可以协同工作&#xff0c;提供服务注册与发现、分布式协调等功能。 - 服务注册与发现&#xff1a; Dubbo服务提供者将自己的信息&#xff08;如IP地址、端口、服务名等&#xff09;注册到ZooKeeper上&…

乐意购项目前端开发 #2

一、Axios的安装和简单封装 安装Axios npm install axios在utils目录下创建 http.js 文件, 内容如下 import axios from axios// 创建axios实例 const http axios.create({baseURL: http://localhost:9999,//后端服务器地址timeout: 5000 })// axios请求拦截器 http.interc…

为什么使用双token实现无感刷新用户认证?

单token机制 认证机制&#xff1a;对与单token的认证机制在我们项目中仅使用一个Access Token的访问令牌进行用户身份认证和授权的方案处理。 不足之处&#xff1a; 安全性较低&#xff08;因为只有一个token在客户端和服务器端之间进行传递&#xff0c;一旦Access Token被截…

ZZULIOJ 1116: 删除元素

题目描述 输入一个递增有序的整型数组A有n个元素&#xff0c;删除下标为i的元素&#xff0c;使其仍保持连续有序。注意&#xff0c;有效下标从0开始。 定义如下两个函数分别实现删除元素操作和数组输出操作。 void del(int a[], int n, int i); /*删除数组a中下标为i的元素*/…