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

华为OD机试 - 数字排列 - 深度优先搜索dfs算法(Python/JS/C/C++ 2024 C卷 200分)

在这里插入图片描述

华为OD机试 2024E卷题库疯狂收录中,刷题点这里

专栏导读

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。

一、题目描述

小明负责公司年会,想出一个趣味游戏:

屏幕给出1~9任意4个不重复的数字,大家以最快的时间给出这几个数字可拼成的数字从小到大排列位于第N位置的数字,其中N为给出数字中最大的数(如果不到这么多数字,则给出最后一个即可)。

注意:

  • 2可以当做5来使用,5也可以当做2来使用进行数字拼接,且屏幕不能同时给出2和5;
  • 6可以当做9来使用,9也可以当做6来使用进行数字拼接,且屏幕不能同时给出6和9;

如给出:1,4,8,7,则可以拼接的数字为:

1,4,7,8,14,17,18,41,47,48,71,74,78,81,84,87,147,148,178,187…

那么第N个数字,即第8个数字为41,输出41。

二、输入描述

输入以逗号分隔的4个1~9的数字组成的字符串。

三、输出描述

输出这几个数字可拼成的数字从小到大排列位于第N位置的数字,其中N为给出数字中最大的数。

如果输入的数字不在规定的范围内或有重复,则输出-1

1、输入

1,4,8,7

2、输出

41

3、说明

可以拼接的数字为:

1,4,7,8,14,17,18,41,47,48,71,74,78,81,84,87,147,148,178,187…

那么第N个数字,即第8个数字为41,输出41。

四、测试用例

1、输入

1,4,8,7

2、输出

41

3、说明

获取组成的数字从小到大排序后第8个数字:

1,4,7,8,14,17,18,41,47,48,71,74,78,81,84,87,147,148,174,178,184,187…

即为41。

五、解题思路

  1. 输入4个1~9的数字,升序排序;
  2. 校验输入合法性;
    • 如果不足4个数字,则输出-1;
    • 输入必须是1~9的数字;
    • 不能同时包含2和5;
    • 不能同时包含6和9;
  3. 取最大的数N;
  4. 通过深度优先搜索dfs算法,拼接所有数字,参数依次为(输入的4位数数组、数字是否使用过、拼接的数字)
  5. 获取组成的数字从小到大排序后第N个数字。

六、Python算法源码

import sys# 定义数字互换关系
replace_map = {2: 5, 5: 2, 6: 9, 9: 6}def check_input(parts):if len(parts) != 4:return Falseseen = set()has2 = has5 = has6 = has9 = Falsefor part in parts:try:num = int(part)except ValueError:return Falseif num < 1 or num > 9:return Falseif num in seen:return Falseseen.add(num)if num == 2:has2 = Trueif num == 5:has5 = Trueif num == 6:has6 = Trueif num == 9:has9 = True# 不能同时包含2和5if has2 and has5:return False# 不能同时包含6和9if has6 and has9:return Falsereturn Truedef generate_numbers(arr):numbers = set()def dfs(temp, used):if temp:numbers.add(int(temp))for i in range(len(arr)):if not used[i]:used[i] = True# 使用当前数字dfs(temp + str(arr[i]), used)# 如果当前数字有可替换的数字if arr[i] in replace_map:dfs(temp + str(replace_map[arr[i]]), used)used[i] = Falsedfs("", [False]*4)return sorted(numbers)def main():input_line = sys.stdin.readline().strip()parts = input_line.split(',')if not check_input(parts):print(-1)returnarr = sorted(map(int, parts))N = arr[3]sorted_numbers = generate_numbers(arr)if not sorted_numbers:print(-1)returnif N <= len(sorted_numbers):print(sorted_numbers[N-1])else:print(sorted_numbers[-1])if __name__ == "__main__":main()

七、JavaScript算法源码

const readline = require('readline');// 定义数字互换关系
const replaceMap = {2: 5,5: 2,6: 9,9: 6
};function checkInput(parts) {if (parts.length !== 4) return false;const seen = new Set();let has2 = false, has5 = false, has6 = false, has9 = false;for (let part of parts) {let num = parseInt(part);if (isNaN(num) || num < 1 || num > 9) return false;if (seen.has(num)) return false;seen.add(num);if (num === 2) has2 = true;if (num === 5) has5 = true;if (num === 6) has6 = true;if (num === 9) has9 = true;}// 不能同时包含2和5if (has2 && has5) return false;// 不能同时包含6和9if (has6 && has9) return false;return true;
}function generateNumbers(arr) {const numbers = new Set();function dfs(temp, used) {if (temp !== "") {numbers.add(parseInt(temp));}for (let i = 0; i < arr.length; i++) {if (!used[i]) {used[i] = true;// 使用当前数字dfs(temp + arr[i], used);// 如果当前数字有可替换的数字if (replaceMap[arr[i]] !== undefined) {dfs(temp + replaceMap[arr[i]], used);}used[i] = false;}}}dfs("", [false, false, false, false]);return Array.from(numbers).sort((a, b) => a - b);
}const rl = readline.createInterface({input: process.stdin,output: process.stdout
});rl.on('line', function(line){const parts = line.trim().split(',');if (!checkInput(parts)) {console.log(-1);rl.close();return;}let arr = parts.map(Number).sort((a, b) => a - b);let N = arr[3];let sortedNumbers = generateNumbers(arr);if (sortedNumbers.length === 0) {console.log(-1);rl.close();return;}if (N <= sortedNumbers.length) {console.log(sortedNumbers[N-1]);} else {console.log(sortedNumbers[sortedNumbers.length -1]);}rl.close();
});

八、C算法源码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>// 定义数字互换关系
int replace_map(int num) {if (num == 2) return 5;if (num == 5) return 2;if (num == 6) return 9;if (num == 9) return 6;return -1;
}typedef struct {int *data;int size;int capacity;
} IntSet;// 初始化集合
void initSet(IntSet *set) {set->capacity = 1000;set->size = 0;set->data = (int*)malloc(sizeof(int)*set->capacity);
}// 添加元素到集合,如果存在则不添加
void addSet(IntSet *set, int num) {for(int i=0;i<set->size;i++) {if(set->data[i] == num) return;}if(set->size == set->capacity){set->capacity *=2;set->data = (int*)realloc(set->data, sizeof(int)*set->capacity);}set->data[set->size++] = num;
}// 生成所有可能的数字
void dfs(int arr[], bool used[], char temp[], int depth, IntSet *set) {if(depth >0){int num = atoi(temp);addSet(set, num);}for(int i=0;i<4;i++){if(!used[i]){used[i] = true;int len = strlen(temp);temp[len] = arr[i] + '0';temp[len+1] = '\0';dfs(arr, used, temp, depth+1, set);// 如果当前数字有可替换的数字int replaced = replace_map(arr[i]);if(replaced != -1){temp[len] = replaced + '0';temp[len+1] = '\0';dfs(arr, used, temp, depth+1, set);}temp[len] = '\0';used[i] = false;}}
}// 比较函数,用于qsort
int cmp(const void *a, const void *b){return (*(int*)a - *(int*)b);
}int main(){char input[100];if(!fgets(input, sizeof(input), stdin)){printf("-1\n");return 0;}// 去除换行符input[strcspn(input, "\n")] = 0;char *parts[4];int count =0;char *token = strtok(input, ",");while(token != NULL && count <4){parts[count++] = token;token = strtok(NULL, ",");}if(count !=4){printf("-1\n");return 0;}int arr[4];bool has2= false, has5= false, has6= false, has9= false;bool seen[10] = {false};for(int i=0;i<4;i++){arr[i] = atoi(parts[i]);if(arr[i]<1 || arr[i]>9){printf("-1\n");return 0;}if(seen[arr[i]]){printf("-1\n");return 0;}seen[arr[i]] = true;if(arr[i]==2) has2=true;if(arr[i]==5) has5=true;if(arr[i]==6) has6=true;if(arr[i]==9) has9=true;}// 不能同时包含2和5if(has2 && has5){printf("-1\n");return 0;}// 不能同时包含6和9if(has6 && has9){printf("-1\n");return 0;}// 排序for(int i=0;i<3;i++){for(int j=i+1;j<4;j++){if(arr[i]>arr[j]){int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}}int N = arr[3];IntSet set;initSet(&set);char tempStr[10] = "";bool used[4] = {false};dfs(arr, used, tempStr, 0, &set);if(set.size ==0){printf("-1\n");free(set.data);return 0;}// 排序qsort(set.data, set.size, sizeof(int), cmp);if(N <= set.size){printf("%d\n", set.data[N-1]);}else{printf("%d\n", set.data[set.size-1]);}free(set.data);return 0;
}

九、C++算法源码

#include <bits/stdc++.h>
using namespace std;// 定义数字互换关系
int replace_map(int num){if(num ==2) return 5;if(num ==5) return 2;if(num ==6) return 9;if(num ==9) return 6;return -1;
}int main(){string input;getline(cin, input);vector<string> parts;string token;// 分割输入stringstream ss(input);while(getline(ss, token, ',')){parts.push_back(token);}// 校验输入if(parts.size() !=4){cout<<-1;return 0;}vector<int> arr;set<int> seen;bool has2=false, has5=false, has6=false, has9=false;for(auto &s: parts){int num = stoi(s);if(num <1 || num >9) {cout<<-1; return 0;}if(seen.count(num)) {cout<<-1; return 0;}seen.insert(num);if(num ==2) has2=true;if(num ==5) has5=true;if(num ==6) has6=true;if(num ==9) has9=true;arr.push_back(num);}if((has2 && has5) || (has6 && has9)){cout<<-1;return 0;}sort(arr.begin(), arr.end());int N = arr[3];set<int> numbers;// DFS生成数字function<void(string, vector<bool>&)> dfs = [&](string temp, vector<bool> &used)->void{if(!temp.empty()){numbers.insert(stoi(temp));}for(int i=0;i<4;i++){if(!used[i]){used[i] = true;// 使用当前数字dfs(temp + to_string(arr[i]), used);// 如果有可替换的数字int replaced = replace_map(arr[i]);if(replaced != -1){dfs(temp + to_string(replaced), used);}used[i] = false;}}};vector<bool> used(4, false);dfs("", used);if(numbers.empty()){cout<<-1;return 0;}// 将set转换为vector并排序vector<int> sorted_numbers(numbers.begin(), numbers.end());sort(sorted_numbers.begin(), sorted_numbers.end());if(N <= sorted_numbers.size()){cout<<sorted_numbers[N-1];}else{cout<<sorted_numbers.back();}return 0;
}

🏆下一篇:华为OD机试真题 - 简易内存池(Python/JS/C/C++ 2024 E卷 200分)

🏆本文收录于,华为OD机试真题(Python/JS/C/C++)

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。

在这里插入图片描述

相关文章:

华为OD机试 - 数字排列 - 深度优先搜索dfs算法(Python/JS/C/C++ 2024 C卷 200分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…...

Scrapy爬取heima论坛所有页面内容并保存到数据库中

前期准备&#xff1a; Scrapy入门_win10安装scrapy-CSDN博客 新建 Scrapy项目 scrapy startproject mySpider03 # 项目名为mySpider03 进入到spiders目录 cd mySpider03/mySpider03/spiders 创建爬虫 scrapy genspider heima bbs.itheima.com # 爬虫名为heima &#…...

Kafka参数了解

Kafka配置参数完整说明 1. 基础配置 参数名说明推荐值参考值broker.idbroker的唯一标识符每个节点唯一的整数1delete.topic.enable是否允许删除topictruetruelistenersbroker监听地址SASL_PLAINTEXT://host:9092SASL_PLAINTEXT://172.24.77.15:9092advertised.listeners对外发…...

sql专题 之 where和join on

文章目录 前言where介绍使用过滤结果集关联两个表 连接外连接内连接自然连接 使用inner join和直接使用where关联两个表的区别总结 前言 从数据库查询数据时&#xff0c;一张表不足以查询到我们想要的数据&#xff0c;更多的时候我们需要联表查询。 联表查询我们一般会使用连接…...

day12:版本控制器

版本控制 使用到的命令&#xff1a; ls -al查看当前目录下的文件及文件夹mkdir新建目录rm -rf递归强制删除文件夹 一、安装配置 1、下载地址 Git 2、初始配置 #用户名 git config --global user.name "自定义用户名" #邮箱&#xff08;公司的联系方式--追责&…...

第四十一章 Vue之初识VueX

目录 一、引言 1.1. vuex的概念 1.2. vuex使用场景 1.3. 优势 二、创建演示项目 2.1. 构建项目步骤 2.2. 项目最终生成结构 2.3. 创建项目文件 2.3.1. App.vue 2.3.2. Son1.vue 2.3.3. Son2.vue 三、创建一个空仓库 3.1. 安装vuex 3.2. 新建仓库 3.3. 挂载仓库…...

GIT的基本使用与进阶

GIT的简单入门 一.什么是git&#xff1f; Git 是一个开源的分布式版本控制系统&#xff0c;用于跟踪文件更改、管理代码版本以及协作开发。它主要由 Linus Torvalds 于 2005 年创建&#xff0c;最初是为 Linux 内核开发而设计的。如今&#xff0c;Git 已经成为现代软件开发中…...

【Linux系统】—— 基本指令(二)

【Linux系统】—— 基本指令&#xff08;二&#xff09; 1 「alias」命令1.1 「ll」命令1.2 「alias」命令 2 「rmdir」指令与「rm」指令2.1 「rmdir」2.2 「rm」2.2.1 「rm」 删除普通文件2.2.2 「rm」 删除目录2.2.3 『 * 』 通配符 3 「man」 指令4 「cp」 指令4.1 拷贝普通…...

MFC工控项目实例三十实现一个简单的流程

启动按钮夹紧 密闭&#xff0c;时间0到平衡 进气&#xff0c;时间1到进气关&#xff0c;时间2到平衡关 检测&#xff0c;时间3到平衡 排气&#xff0c;时间4到夹紧开、密闭开、排气关。 相关代码 void CSEAL_PRESSUREDlg::OnTimer_2(UINT nIDEvent_2) {// if (nIDEvent_21 &am…...

【Android、IOS、Flutter、鸿蒙、ReactNative 】文本点击事件

Android Studio 版本 Android Java TextView 实现 点击事件 参考 import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.TextView; import android.widget.Toast;public c…...

json转excel,读取json文件写入到excel中【rust语言】

一、rust代码 将json文件写入到 excel中。&#xff08;保持json &#xff1a;key原始顺序&#xff09; use indexmap::IndexMap; use serde::Deserialize; use serde_json::{Value, from_str}; use std::error::Error; use std::io::{self, Write}; use std::path::{Path}; u…...

Java面试要点06 - static关键字、静态属性与静态方法

本文目录 一、引言二、静态属性&#xff08;Static Fields&#xff09;三、静态方法&#xff08;Static Methods&#xff09;四、静态代码块&#xff08;Static Blocks&#xff09;五、静态内部类&#xff08;Static Nested Classes&#xff09;六、静态导入&#xff08;Static…...

动态规划-背包问题——416.分割等和子集

1.题目解析 题目来源 416.分割等和子集——力扣 测试用例 2.算法原理 1.状态表示 这里背包问题基本上和母题的思路大相径庭&#xff0c;母题请见 [模板]01.背包 &#xff0c;这里的状态表示与装满背包的情况类似&#xff0c;第二个下标就是当选择的物品体积直接等于j时是否可…...

Pr:视频过渡快速参考(合集 · 2025版)

Adobe Premiere Pro 自带七组约四十多个视频过渡 Video Transitions效果&#xff0c;包含不同风格和用途&#xff0c;可在两个剪辑之间创造平滑、自然的转场&#xff0c;用来丰富时间、地点或情绪的变化。恰当地应用过渡可让观众更好地理解故事或人物。 提示&#xff1a; 点击下…...

网络安全---安全见闻2

网络安全—安全见闻 拓宽视野不仅能够丰富我们的知识体系&#xff0c;也是自我提升和深造学习的重要途径&#xff01;&#xff01;&#xff01; 设备漏洞问题 操作系统漏洞 渗透测试视角&#xff1a;硬件设备上的操作系统可能存在各种漏洞&#xff0c;攻击者可以利用这些漏洞…...

解决因为TortoiseSVN未安装cmmand line client tools组件,导致idea无法使用svn更新、提交代码

一.错误信息 1.更新代码时&#xff1a;SVN: 更新错误 找不到要更新的版本管理目录。 2.提交代码&#xff1a;检测不到任何更新&#xff08;实际上有代码修改&#xff09;。 3.Cannot run program "svn"。 二.原因分析 在电脑上新安装的的客户端TortoiseSVN、ide…...

Ubuntu 20.04安装CUDA 11.0、cuDNN 8.0.5

不知道咋弄的ubuntu20.04电脑的cuda驱动丢了&#xff0c;无奈需装PyTorch环境&#xff0c;只有CUDA11.0以上版本才支持Ubuntu20.04&#xff0c;所以安装了CUDA11.0、cuDNN8.0.5 为防止频繁在浏览器检索对应的贴子&#xff0c;今天记录一下。 一. 驱动安装 为防止驱动安装后没…...

鸿蒙 APP 发布上架

证书创建与打包: https://developer.huawei.com/consumer/cn/doc/app/agc-help-releaseharmony-0000001933963166 不同环境多渠道打包: //todo 备案相关 一、除了发布应用商店以外,还有3个渠道,都适合小规模内测。 【1】开放式测试:发给指定白名单用户 【2】发布企业内…...

【C++笔记】C++三大特性之继承

【C笔记】C三大特性之继承 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;C笔记 文章目录 【C笔记】C三大特性之继承前言一.继承的概念及定义1.1 继承的概念1.2继承的定义1.3继承基类成员访问方式的变化1.4继承类模板 二.基类和派生类间的转…...

如何在CentOS 7上搭建SMB服务

如何在CentOS 7上搭建SMB服务 因项目测试需求&#xff0c;需要自行搭建SMB服务&#xff0c;**SMB&#xff08;Server Message Block&#xff09;**协议是一种常用的文件共享方式&#xff0c;它可以让不同操作系统之间共享文件、打印机等资源。本文将带你一步步搭建一个简单的S…...

linux详解,基本网络枚举

基本网络枚举 一、基本网络工具 ifconfig ifconfig是一个用于配置和显示网络接口信息的命令行工具。它可以显示网络接口的P地址、子网掩码、MC地址等信息&#xff0c;还可以用于启动、停止或配置网络接口。 ip ip也是用于查看和管理网络接口的命令。 它提供了比ifconfig更…...

5G智能对讲终端|北斗有源终端|北斗手持机|单兵|单北斗

在当今这个快速发展的数字化时代&#xff0c;5G技术的广泛应用正以前所未有的速度推动着各行各业的变革。作为这一技术浪潮中的重要一环&#xff0c;5G智能终端QM630D凭借其卓越的性能和多样化的功能&#xff0c;在林业、渔业、安保、电力、交通等多个领域展现出了巨大的应用潜…...

第七部分:2. STM32之ADC实验--AD多通道(AD采集三路传感器模块实验:光敏传感器、热敏传感器、反射式传感器附赠温湿度传感器教程)

这个多通道采用非扫描模式--单次转换模式 1.代码配置链路图 2. ADC的输入通道 3.ADC的非扫描模式的转换模式&#xff08;单次和连续&#xff09; 4.ADC的扫描模式的转换模式&#xff08;单次和连续&#xff09; 5.采集校准 代码实验&#xff1a; 代码部分&#xff1a; #inclu…...

js.零钱兑换

链接&#xff1a;322. 零钱兑换 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 给你一个整数数组 coins &#xff0c;表示不同面额的硬币&#xff1b;以及一个整数 amount &#xff0c;表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何…...

GitHub 上的开源项目推荐

GitHub 上的开源项目有成千上万&#xff0c;涵盖了从前端框架到数据科学、机器学习、系统工具等各个领域。不同的人根据兴趣和需求&#xff0c;可能会有不同的排名。不过&#xff0c;一些开源项目因为其广泛的应用、社区支持和技术创新&#xff0c;通常被认为是“最好”的开源项…...

实现Reactor反应堆模型:框架搭建

实现Reactor反应堆模型&#xff1a;框架搭建 Reactor模型是一种常用于处理大量并发I/O操作的设计模式&#xff0c;特别适用于服务器端的网络编程。该模型通过事件驱动的方式&#xff0c;将I/O操作的处理与具体的业务逻辑分离&#xff0c;从而提高系统的并发处理能力和响应速度…...

UE5 样条线组件(未完待续)

按点生成模型 按距离生成 spline mesh 可缩放spline mesh...

计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议

文章目录 一、TCP/IP五层模型&#xff08;重要&#xff09;二、应用层常见的协议三、TCP与UDP3.1 TCP、UDP的区别&#xff08;重要&#xff09;3.2 运行于TCP、UDP上的协议3.3 TCP的三次握手、四次挥手3.3.1 TCP的三次握手3.3.2 TCP的四次挥手3.3.3 随机生成序列号的原因 四、T…...

sql速度优化多条合并为一条语句

在 SQL 中&#xff0c;结合 CASE 和 SUM 可以实现根据特定条件进行分组求和。在 ThinkPHP 中也可以使用类似的方式进行数据库查询操作。 例如&#xff0c;假设有一个销售数据表&#xff0c;包含字段 product_id &#xff08;产品 ID&#xff09;、 quantity &#xff08;销…...

用 PHP或Python加密字符串,用iOS解密

可以使用对称加密算法&#xff08;如 AES&#xff09;来加密和解密字符串。对称加密适合这种跨平台加密解密的需求&#xff0c;因为可以使用相同的密钥和算法在不同的编程语言和系统之间进行加密和解密。 下面展示如何使用 Python 或 PHP 进行加密&#xff0c;然后用 iOS (Swi…...

专门做金融的招聘网站/网站排名首页

几种视力保护色 银河白 #FFFFFF rgb(255, 255, 255) 杏仁黄 #FAF9DE rgb(250, 249, 222) 秋叶褐 #FFF2E2 rgb(255, 242, 226) 胭脂红 #FDE6E0 rgb(253, 230, 224) 青草绿 #E3EDCD rgb(227, 237, 205) 海天蓝 #DCE2F1 rgb(220, 226, 241) 葛巾紫 #E9EBFE rgb(233, 235, 254) 极光…...

wordpress用多大主机/互联网运营自学课程

弹簧动画 弹簧动画:CASpringAnimation->CABasicAnimation(基础动画)->CAPropertyAnimation(属性动画)->CAAnimation(核心动画) 下面就是核心动画的结构图: 基础动画:CABasicAnimation->只能设置fromValue、toValue、byValue 所以CASpringAnimation(弹簧动画)也只能…...

wordpress编辑文章怎么开头空两行/百度订单售后电话

1、拨打电话参数&#xff1a;number: ( String ) 必选 要拨打的电话号码confirm: ( Boolean ) 可选 是否需要用户确认后开始拨打电话设置为true表示打开系统拨打电话界面&#xff0c;需用户点击拨号按钮后才开始拨打电话&#xff0c;false则无需确认直接拨打电话&#xff0c;默…...

php网站后台入口/凡科网站建设

为什么用 与平台无关,不需要直接调用,而是发消息到mq,解耦\异步 架构 启动...

如何建设社区网站/如何自己做一个网站

方舟生存进化里程碑式更新来了&#xff01;在最新的方舟生存进化193版中&#xff0c;官方终于对一直困扰着广大玩家的服务器延迟问题进行了全面彻底地优化&#xff0c;另外加入稀有的Alpha霸王龙以及和新石头巨兽门和空头陷阱&#xff0c;是不是非常的心动呢&#xff1f;下面就…...

做快餐 承包食堂的公司网站/搜索引擎环境优化

目录 事件绑定 1. 如何绑定事件 2. 获取事件对象 事件绑定 说明&#xff1a;能够独立绑定任何事件并能获取到事件对象e 1. 如何绑定事件 语法 on 事件名称 { 事件处理程序 } &#xff0c;比如&#xff1a;<div onClick{()>{}}></div> 注意点 react事件采…...