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

leetCode - - - 哈希表

目录

1.模拟行走机器人(LeetCode 874)

2.数组的度(LeetCode 697)

3.子域名访问次数(LeetCode 811)

4.字母异位词分组(LeetCode 49)

5.小结

1.常见的哈希表实现

2.遍历Map


1.模拟行走机器人(LeetCode 874)

机器人在一个无限大小的 XY 网格平面上行走,从点 (0, 0) 处开始出发,面向北方。该机器人可以接收以下三种类型的命令 commands :

  • -2 :向左转 90 度
  • -1 :向右转 90 度
  • 1 <= x <= 9 :向前移动 x 个单位长度

在网格上有一些格子被视为障碍物 obstacles 。第 i 个障碍物位于网格点  obstacles[i] = (xi, yi) 。

机器人无法走到障碍物上,它将会停留在障碍物的前一个网格方块上,并继续执行下一个命令。

返回机器人距离原点的 最大欧式距离 的 平方 。(即,如果距离为 5 ,则返回 25 )

注意:

  • 北方表示 +Y 方向。
  • 东方表示 +X 方向。
  • 南方表示 -Y 方向。
  • 西方表示 -X 方向。
  • 原点 [0,0] 可能会有障碍物。

示例 1:

输入:commands = [4,-1,3], obstacles = []
输出:25
解释:
机器人开始位于 (0, 0):
1. 向北移动 4 个单位,到达 (0, 4)
2. 右转
3. 向东移动 3 个单位,到达 (3, 4)
距离原点最远的是 (3, 4) ,距离为 32 + 42 = 25

class Solution {public int robotSim(int[] commands, int[][] obstacles) {// 初始化结果int result = 0;// 从原点( 0 ,0 )位置开始出发int x = 0, y = 0;// 机器人前进的方向// 初始方向:正北int direction = 0;// 定义四个方向int[][] direxy = new int[][]{{0, 1}, {1, 0}, {0, -1}, {-1, 0}};// 障碍物有多个,所以需要有一个障碍物坐标点集合// 使用 集合 Set 存储障碍物的坐标,用来检查下一步是否受阻// 机器人每试图走一个位置,就用此位置与障碍物集合列表里的坐标进行比较,看是否刚好是障碍物坐标点HashSet<String> obstaclesSet = new HashSet<String>();// 存储障碍物坐标点for (int[] obs : obstacles) {// 以坐标的形式存储obstaclesSet.add(obs[0] + "," + obs[1]);}// 机器人开始行走for (int com : commands) {// -2:向左转 90 度if (com == -2) {direction = (direction == 0) ? 3 : direction - 1;// -1:向右转 90 度} else if (com == -1) {direction = (direction == 3) ? 0 : direction + 1;// 1 <= x <= 9 :向前移动 x 个单位长度} else {// 没有遇到障碍物,一直往前走 com 个单位长度while (com-- > 0 && !obstaclesSet.contains((x + direxy[direction][0]) + "," + (y + direxy[direction][1]))) {x += direxy[direction][0];y += direxy[direction][1];}// 机器人停下来后开始计算最大欧式距离的平方// 更新结果result = Math.max(result, x * x + y * y);}}return result;}
}

知识点:

1. 二维数组的使用
定义:int[] obs 表示一个一维数组,每个 obs 是 obstacles 数组的元素。obstacles 是一个二维数组,其中的每个元素都是表示障碍物坐标的数组。
访问元素:通过 obs[0] 和 obs[1] 可以访问障碍物的 x 和 y 坐标。
2. 集合(HashSet)的使用
定义:HashSet 是一个集合类,它不允许重复的元素,并且提供了高效的查找、添加和删除操作。
用法:在这里,obstaclesSet 被用来存储障碍物的坐标,以便快速查找。这种存储方式提高了查找效率,尤其是在处理大量障碍物数据时。
3. 字符串的连接
操作:obs[0] + "," + obs[1] 将 x 和 y 坐标值转换为字符串格式 "x,y"。这种格式使得坐标可以被轻松地存储和比较。
应用:将坐标以字符串形式存储到 HashSet 中,便于进行后续的查找和操作。
4. 增强的 for 循环
定义:for (int[] obs : obstacles) 是 Java 的增强型 for 循环(或称为 foreach 循环),它用于遍历数组或集合中的每一个元素。
用法:这使得遍历 obstacles 数组中的每个障碍物坐标变得简单和直观。
5. 坐标系统
概念:x 和 y 坐标用于表示二维空间中的位置。在代码中,obs[0] 和 obs[1] 分别代表 x 和 y 坐标值。


2.数组的度(LeetCode 697)

给定一个非空且只包含非负数的整数数组 nums,数组的  的定义是指数组里任一元素出现频数的最大值。

你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。

示例 1:

输入:nums = [1,2,2,3,1]
输出:2
解释:
输入数组的度是 2 ,因为元素 1 和 2 的出现频数最大,均为 2 。
连续子数组里面拥有相同度的有如下所示:
[1, 2, 2, 3, 1], [1, 2, 2, 3], [2, 2, 3, 1], [1, 2, 2], [2, 2, 3], [2, 2]
最短连续子数组 [2, 2] 的长度为 2 ,所以返回 2 。

示例 2:

输入:nums = [1,2,2,3,1,4,2]
输出:6
解释:
数组的度是 3 ,因为元素 2 重复出现 3 次。
所以 [2,2,3,1,4,2] 是最短子数组,因此返回 6 。

解题思路

1.哈希表:使用 HashMap 存储每个元素的出现次数及其最早和最后出现的位置。
2.数组遍历:通过遍历数组来填充哈希表的信息。
3.度量最大出现次数:在哈希表中查找出现次数最多的元素。(第一次遍历)
4.计算最短子数组长度:遍历哈希表,找到包含出现次数最多元素的最短子数组。(第二次遍历)

知识点运用

Map.Entry 是 Map 接口中的一个嵌套接口,表示 Map 中的一个键值对。
1.主要方法:
getKey():获取 Map.Entry 的键。
getValue():获取 Map.Entry 的值。
setValue(V value):设置 Map.Entry 的值。
2.遍历 Map:最常用的方式是通过 entrySet() 方法,该方法返回 Map 中所有键值对的集合(Set<Map.Entry<K, V>>)。

Map<String, Integer> map = new HashMap<>();
map.put("apple", 3);
map.put("banana", 2);for (Map.Entry<String, Integer> entry : map.entrySet()) {String key = entry.getKey();Integer value = entry.getValue();System.out.println(key + ": " + value);
}

解题代码: 

class Solution {public int findShortestSubArray(int[] nums) {// 初始化长度为一个大数值,方便后续更新int minLength = Integer.MAX_VALUE;// Map存储每个元素的出现次数及其最早和最晚出现位置Map<Integer, int[]> map = new HashMap<>();// 遍历数组,统计每个元素的信息for (int i = 0; i < nums.length; i++) {if (map.containsKey(nums[i])) {int[] value = map.get(nums[i]);value[0]++; // 增加出现次数value[2] = i; // 更新最后出现的位置} else {// 第一次出现该元素map.put(nums[i], new int[]{1, i, i});}}// 计算数组中出现次数最多的元素int maxTimes = 0;for (int[] value : map.values()) {maxTimes = Math.max(maxTimes, value[0]);}// 再次遍历map来找到最短长度for (Map.Entry<Integer, int[]> entry : map.entrySet()) {int[] value = entry.getValue();if (value[0] == maxTimes) {minLength = Math.min(minLength, value[2] - value[1] + 1);}}return minLength;}
}

3.子域名访问次数(LeetCode 811)

网站域名 "discuss.leetcode.com" 由多个子域名组成。顶级域名为 "com" ,二级域名为 "leetcode.com" ,最低一级为 "discuss.leetcode.com" 。当访问域名 "discuss.leetcode.com" 时,同时也会隐式访问其父域名 "leetcode.com" 以及 "com" 。

计数配对域名 是遵循 "rep d1.d2.d3" 或 "rep d1.d2" 格式的一个域名表示,其中 rep 表示访问域名的次数,d1.d2.d3 为域名本身。

  • 例如,"9001 discuss.leetcode.com" 就是一个 计数配对域名 ,表示 discuss.leetcode.com 被访问了 9001 次。

给你一个 计数配对域名 组成的数组 cpdomains ,解析得到输入中每个子域名对应的 计数配对域名 ,并以数组形式返回。可以按 任意顺序 返回答案。

示例 1:

输入:cpdomains = ["9001 discuss.leetcode.com"]
输出:["9001 leetcode.com","9001 discuss.leetcode.com","9001 com"]
解释:例子中仅包含一个网站域名:"discuss.leetcode.com"。
按照前文描述,子域名 "leetcode.com" 和 "com" 都会被访问,所以它们都被访问了 9001 次。

示例 2:

输入:cpdomains = ["900 google.mail.com", "50 yahoo.com", "1 intel.mail.com", "5 wiki.org"]
输出:["901 mail.com","50 yahoo.com","900 google.mail.com","5 wiki.org","5 org","1 intel.mail.com","951 com"]
解释:按照前文描述,会访问 "google.mail.com" 900 次,"yahoo.com" 50 次,"intel.mail.com" 1 次,"wiki.org" 5 次。
而对于父域名,会访问 "mail.com" 900 + 1 = 901 次,"com" 900 + 50 + 1 = 951 次,和 "org" 5 次。

class Solution {public List<String> subdomainVisits(String[] cpdomains) {// 使用哈希表记录每个子域名的计数Map<String, Integer> map = new HashMap<>();// 遍历数组for (String s : cpdomains) {// 获取当前字符串的长度int n = s.length();// 每个字符串都是由数字 + 域名组成// 先去获取这个字符串中的数字// 从 0 开始,向后扫描到空格位置int idx = 0;// 从前向后扫描到空格位置while (idx < n && s.charAt(idx) != ' ') idx++;// 截取出数字来// tips: substring() 方法返回字符串的子字符串// beginIndex -- 起始索引(包括), 索引从 0 开始// endIndex -- 结束索引(不包括)int cnt = Integer.parseInt(s.substring(0, idx));// 从后往前处理域名部分,直到处理完毕int start = idx + 1; // 从后往前处理域名部分idx = n - 1;// 直到处理完毕while (idx >= start) {// 每个域名由多个子域名组成// 通过 . 来截取while (idx >= start && s.charAt(idx) != '.') idx--;// 获取当前子域名String cur = s.substring(idx + 1);// 更新这个子域名的计数map.put(cur, map.getOrDefault(cur, 0) + cnt);// idx 继续向前移动idx--;}}// 从哈希表中构造出数组答案来List<String> ans = new ArrayList<>();// keySet() 方法返回映射中所有 key 组成的 Set 视图for (String key : map.keySet()) {// key 是域名,map.get(key) 获取 valueans.add(map.get(key) + " " + key);}// 返回结果return ans;}
}

区别keySet() 和 entrySet()
keySet():
返回 Map 中所有键的集合 (Set<K>).
适合只需要处理键的情况。例如,只需要检查键是否存在或者只需要获取键的列表。
entrySet():
返回 Map 中所有键值对的集合 (Set<Map.Entry<K, V>>).
更适合同时需要访问键和值的情况。通过 Map.Entry<K, V> 对象可以直接访问键和值,提高效率

for (String key : map.keySet()) {System.out.println(key + " -> " + map.get(key));
}for (Map.Entry<String, Integer> entry : map.entrySet()) {System.out.println(entry.getKey() + " -> " + entry.getValue());
}

4.字母异位词分组(LeetCode 49)

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

字母异位词 是由重新排列源单词的所有字母得到的一个新单词。

示例 1:

输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
输出: [["bat"],["nat","tan"],["ate","eat","tea"]]

示例 2:

输入: strs = [""]
输出: [[""]]

做题思路:

1.遍历所有字符串,计算每个字符串的字符频次。
2.将频次转换为唯一的键,并使用哈希表将具有相同键的字符串分组。
3.返回哈希表中所有分组的值,即字母异位词的分组结果

较为严谨的解法:不确定每个字符串是否可以有重复的字符,这里计算了每个字符出现的频次

class Solution {public List<List<String>> groupAnagrams(String[] strs) {Map<String,List<String>> map=new HashMap<String,List<String>>();for(String str:strs){// count 代表每个小写字母出现的频次int[] count=new int[26];// 利用 for 循环,统计 str 当中每个字母出现的频次for(int i=0;i<str.length();i++){count[str.charAt(i) -'a']++;}StringBuffer sb=new StringBuffer();// // 将每个出现次数大于 0 的字母和出现次数按顺序拼接成字符串,作为哈希表的键for(int i=0;i<26;i++){if(count[i]!=0){// 先记录字母,比如记录了字母 ksb.append((char)(i+'a'));// 再记录次数,比如记录了次数 9sb.append(count[i]);}}// 转换为字符串的形式,比如为 a1c9q7String key=sb.toString();// 在哈希表 map 当中找出这个 key 对应的字符串 str 来// 1、如果有这个 key,那么这个 key 对应的 数组 会新增一个 str 进去// 2、如果没有这个 key,那么会初始化一个数组,用来新增这个 strList<String> list=map.getOrDefault(key,new ArrayList<String>());list.add(str);map.put(key,list);}//return new ArrayList<>(map.values());return  new ArrayList<List<String>>(map.values()); }
}

力扣给的通过率最高的解法:默认每个字符串中不会出现重复的字母

class Solution {public List<List<String>> groupAnagrams(String[] strs) {HashMap<String, List<String>> hashMap = new HashMap<>();for (String str : strs) {char[] charArray = str.toCharArray();Arrays.sort(charArray);String key = new String(charArray);List<String> list = hashMap.getOrDefault(key, new ArrayList<String>());list.add(str);hashMap.put(key, list);}return  new ArrayList<>(hashMap.values());}
}

5.小结

1.常见的哈希表实现

HashMap:

用于存储键值对,每个键(key)与一个值(value)相关联。

Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
int value = map.get("apple");


使用:使用 HashMap 统计元素出现的次数

Map<Integer, Integer> map = new HashMap<>();
for (int num : nums) {map.put(num, countMap.getOrDefault(num, 0) + 1);
}


HashSet:

适用于需要存储唯一元素的场景(类似于 HashMap 的键部分)

Set<String> set = new HashSet<>();
set.add("apple");
boolean exists = set.contains("apple"); // true


使用:通过 HashSet 快速查找元素是否出现过

Set<Integer> set = new HashSet<>();
for (int num : nums) {if (!set.add(num)) {// 如果返回 false,说明 num 已经存在}

2.遍历Map


entrySet() 是最常用的方法,适合遍历 Map 中的键值对。
keySet() 和 values() 方法适合只需要键或值时使用。

 // 遍历 entrySet()for (Map.Entry<String, Integer> entry : map.entrySet()) {String key = entry.getKey();Integer value = entry.getValue();System.out.println("Key: " + key + ", Value: " + value);}// 遍历 keySet()
for (String key : map.keySet()) {Integer value = map.get(key);System.out.println("Key: " + key + ", Value: " + value);
}// 遍历 values()
for (Integer value : map.values()) {System.out.println("Value: " + value);
}

相关文章:

leetCode - - - 哈希表

目录 1.模拟行走机器人&#xff08;LeetCode 874&#xff09; 2.数组的度&#xff08;LeetCode 697&#xff09; 3.子域名访问次数&#xff08;LeetCode 811&#xff09; 4.字母异位词分组&#xff08;LeetCode 49&#xff09; 5.小结 1.常见的哈希表实现 2.遍历Map 1.模…...

NGINX自动清理180天之前的日志

需求描述 日志每天会以天为单位产生一个日志&#xff0c;不清理的话会越来越多。这里写一个Lua自定定时清理日志目录下的日志文件。 依赖安装 安装 lfs 模块 yum install luarocks yum install lua-develluarocks install luafilesystem 创建模拟旧文件 创建了一个1月的旧…...

jackson 轻松搞定接口数据脱敏

一、简介 实际的业务开发过程中&#xff0c;我们经常需要对用户的隐私数据进行脱敏处理&#xff0c;所谓脱敏处理其实就是将数据进行混淆隐藏&#xff0c;例如下图&#xff0c;将用户的手机号、地址等数据信息&#xff0c;采用*进行隐藏&#xff0c;以免泄露个人隐私信息。 如…...

Nginx 正则表达式与rewrite

目录 一、正则表达式 二、rewrite 2.1 rewrite简述 2.2 rewrite 跳转 2.3 rewrite 执行顺序 2.4 rewrite 语法格式 三、location 3.1 location 类别 3.2 location常用匹配规则 3.3 location优先级 3.4 示例说明 3.5 匹配规则总结 3.6 三个匹配规则定义 四、实战…...

tekton什么情况下在Dockerfile中需要用copy

kaniko配置如下 如果docker中的workDir跟tekton中的workDir不一致需要copy。也可以通过mv&#xff0c;cp达到类似效果...

第九届世界渲染大赛在哪里提交作品呢?

自第九届世界渲染大赛开放投稿以来&#xff0c;已经过去了10天。在这段时间里&#xff0c;众多CG爱好者已经完成了他们的动画创作。然而&#xff0c;许多参赛者对于如何提交他们的作品仍然感到困惑。接下来&#xff0c;让我们一起了解具体的投稿流程和入口&#xff0c;确保每位…...

fastjson(autoType)反序列化漏洞

1. 温少和他的fastjson 阿里巴巴的 FastJSON&#xff0c;也被称为 Alibaba FastJSON 或阿里巴巴 JSON&#xff0c;是一个高性能的 Java JSON 处理库&#xff0c;用于在 Java 应用程序中解析和生成 JSON 数据。FastJSON 以其卓越的性能和功能丰富的特点而闻名&#xff0c;并在…...

Java入门基础16:集合框架1(Collection集合体系、List、Set)

集合体系结构 Collection是单列集合的祖宗&#xff0c;它规定的方法&#xff08;功能&#xff09;是全部单列集合都会继承的。 collection集合体系 Collection的常用方法 package com.itchinajie.d1_collection;import java.util.ArrayList; import java.util.HashSet;/* * 目…...

Qt如何调用接口

在Qt中&#xff0c;你可以使用QNetworkAccessManager类来调用API。以下是一个简单的示例&#xff1a; cpp #include <QCoreApplication> #include <QNetworkAccessManager> #include <QNetworkRequest> #include <QNetworkReply> int main(int arg…...

Android14之解决编译libaaudio.so报错问题(二百二十七)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列…...

【专题】2024年7月人工智能AI行业报告合集汇总PDF分享(附原数据表)

原文链接:https://tecdat.cn/?p37350 随着人工智能技术的飞速发展&#xff0c;AI已经成为当今时代的重要驱动力。本报告将聚焦于人工智能AI行业的最新动态&#xff0c;涵盖客户服务、体验营销、资产管理以及国产AI大模型应用等多个领域。通过深入研究和分析&#xff0c;我们…...

干货分享|如何使用Stable Diffusion打造会说话的数字人?

数字人已不是什么新鲜名词了。在许多领域&#xff0c;尤其是媒体和娱乐领域&#xff0c;经常可以看到卡通形象的人物或逼真的虚拟主持人。在Stable Diffusion中&#xff0c;我们可以上传一段录制好的音频文件&#xff0c;然后使用SadTalker插件&#xff0c;将音频和图片相结合&…...

OrangePi AIpro学习4 —— 昇腾AI模型推理 C++版

目录 一、ATC模型转换 1.1 模型 1.2 ATC工具 1.3 实操模型转换 1.4 使用ATC工具时的一些关键注意事项 1.5 ATC模型转换命令举例 二、运行昇腾AI模型应用样仓程序 2.1 程序目录 2.2 下载模型和模型转换 2.3 下载图片和编译程序 2.4 解决报错 2.5 运行程序 三、运行…...

vue js 多组件异步请求解决方案

接口之间异步问题可以采用Promiseasyncawait 链接&#xff1a; https://blog.csdn.net/qq_39816586/article/details/103517416 使用场景&#xff1a; 1.保障用户必须完成自动登录&#xff0c;才调用后续逻辑 2.保障必须完成初始启动&#xff0c;才调用后续逻辑 3.保障先执行on…...

【Android】不同系统版本获取设备MAC地址

【Android】不同系统版本获取设备MAC地址 尝试实现 尝试 在开发过程中&#xff0c;想要获取MAC地址&#xff0c;最开始想到的就是WifiManager&#xff0c;但结果始终返回02:00:00:00:00:00&#xff0c;由于用得是wifi &#xff0c;考虑是不是因为用得网线的原因&#xff0c;但…...

残差网络--NLP上的应用

在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;残差网络&#xff08;ResNet&#xff09;同样有着广泛的应用。虽然最初的残差网络设计是为了处理图像任务&#xff0c;但其核心思想也被成功地迁移到了自然语言处理任务中&#xff0c;以解决深层神经网络中的退化问题…...

1章4节:数据可视化, R 语言的静态绘图和 Shiny 的交互可视化演示(更新2024/08/14)

在数据科学的世界中,“一图胜千言”的古老谚语依然适用。数据可视化不仅仅是将数据以图形化的方式展现,更是帮助我们发现数据背后隐藏模式、趋势和异常的强大工具。R语言作为数据科学的主要编程语言之一,以其强大的可视化能力而闻名,许多数据科学家和分析师因此选择了R作为…...

浅谈个人用户如何玩转HTTP代理

今天&#xff0c;准备和大家聊聊我是如何玩转HTTP代理的&#xff0c;希望能给大家带来一些启发和帮助。 犹记得刚开始接触HTTP代理时&#xff0c;我对它还是一无所知。那时我总被各种网络限制所困扰&#xff0c;无法随心所欲地访问我想看的网站。直到HTTP代理的出现&#xff0c…...

动手研发实时口译系统

重磅推荐专栏: 《大模型AIGC》 《课程大纲》 《知识星球》 本专栏致力于探索和讨论当今最前沿的技术趋势和应用领域,包括但不限于ChatGPT和Stable Diffusion等。我们将深入研究大型模型的开发和应用,以及与之相关的人工智能生成内容(AIGC)技术。通过深入的技术解析和实践经…...

C#(asp.net)电商后台管理系统-计算机毕业设计源码70015

摘 要 随着互联网技术的不断发展&#xff0c;电商行业也越来越受到人们的关注。为了提高电商行业的管理效率和服务水平&#xff0c;本文提出了一种基于ASP.NET电商后台管理系统的设计与实现方案。 电商管理系统基于VisualStudio开发平台&#xff0c;采用C#编程语言和ASP.NET等技…...

Unity 中创建动画的教程

Unity 动画创建教程 在游戏开发中&#xff0c;生动的动画能够极大地提升玩家的体验。在这篇教程中&#xff0c;我们将一起探索如何在 Unity 中创建动画。 一、准备工作 首先&#xff0c;确保您已经安装了最新版本的 Unity 引擎。创建一个新的 Unity 项目或者打开您现有的项目…...

2024年最全渗透测试学习指南,小白也能轻松hold住!零基础到精通,看完这篇就够了!

可能会有很多人觉得渗透测试门槛很高&#xff0c;学习周期长&#xff0c;似乎只有天赋异禀者方能涉足。实则不然&#xff0c;渗透测试行业虽有其专业门槛&#xff0c;但绝非如外界渲染的那样高不可攀。归根结底&#xff0c;所需的基础不过是扎实的编程语言功底&#xff0c;同时…...

有道云docx转换markdown,导入hugo发布到github page,多平台发布适配

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ 有道云导出docx 有道云笔记右上角更多按钮选择【导出为Word】&#xff0c;可以导出docx文档 docx转换markdown 尝试了几个docx转markdown的python库后&…...

如何理解:进程控制

文章目录 前言&#xff1a;进程创建&#xff1a;进程终止&#xff1a;如何终止进程&#xff1f;进程等待非阻塞等待&#xff1a; 总结&#xff1a; 前言&#xff1a; ​ 对于前面的地址空间的学习&#xff0c;我们现在了解到原来所谓变量的地址其实是虚拟地址&#xff0c;该虚…...

工业互联网边缘计算实训室解决方案

一、引言 随着物联网&#xff08;IoT&#xff09;、5G通信技术的快速发展&#xff0c;工业互联网已成为推动制造业转型升级的重要力量。边缘计算作为云计算的延伸和补充&#xff0c;在实时数据分析、降低数据传输延迟、提升处理效率及增强数据安全性方面展现出巨大潜力。在此背…...

Android全面解析之Context机制(一) :初识Android context

什么是Context 回想一下最初学习Android开发的时候&#xff0c;第一用到context是什么时候&#xff1f;如果你跟我一样是通过郭霖的《第一行代码》来入门android&#xff0c;那么一般是Toast。Toast的常规用法是&#xff1a; Toast.makeText(this, "我是toast", To…...

气象百科——气象监测站的介绍

气象监测站是专门用于监测和记录大气环境状态及变化规律的设施。这些站点通过安装各种观测仪器&#xff0c;如温度传感器、湿度传感器、气压传感器、风速风向传感器、雨量传感器以及近年来兴起的雷达水位计等&#xff0c;全方位、多角度地收集大气中的温度、湿度、气压、风速风…...

学懂C++(三十):高级教程——深入解析 C++ Windows API 的多线程支持

引言 在现代应用程序中&#xff0c;多线程编程是实现高性能和高并发任务的关键手段。Windows 操作系统为开发者提供了一套强大的 API&#xff0c;用于创建和管理线程、同步任务&#xff0c;并优化线程性能。本文将深入探讨 C 中 Windows API 的多线程支持&#xff0c;详细介绍线…...

苹果笔记本电脑可以玩steam游戏吗 MacBook支持玩steam游戏吗 在Steam上玩黑神话悟空3A大作 苹果Mac怎么下载steam

游戏是生活的润滑剂&#xff0c;越来越多的用户开始关注Mac平台上可玩的游戏。幸运的是&#xff0c;Steam作为最大的数字发行平台之一&#xff0c;提供了大量适用于Mac操作系统的游戏。无论你是喜欢策略、冒险还是射击类游戏&#xff0c;都能在Steam上找到适合自己Mac设备玩耍的…...

海康摄像头(测温型)桌面客户端开发分享

分享一个自己开发的用于企业特殊场景下温度监控告警的一个桌面应用。 关键功能&#xff1a; 1.支持海康摄像头&#xff1b; 2.支持多路视频预览&#xff0c;多通道画面选择预览&#xff0c;支持视频画面回放与下载&#xff1b; 3.支持自动探测摄像头功能&#xff0c;若具备…...

深圳网站建设怎样容易/网络营销软文范例500字

这次需要记录一下我搭建web服务器的过程。 第一步&#xff0c;确定自己要使用的平台&#xff1a;这次我用的是windows2008 server版本 第二步&#xff0c;计划是想要纯手工的安装apache、php等。但是我们可以下载一个wamp集成版&#xff08;即windows系统下apache、mysql 、php…...

手机游戏排行榜2020前十名/百度seo如何优化

http://www.cnblogs.com/85538649/archive/2011/12/05/2276901.html转载于:https://blog.51cto.com/5828666/1622841...

潮汕美食网站怎么做/北京建站公司

前言&#xff1a;本以为异步加载挺简单&#xff0c;因为网上代码多&#xff0c;但真想要做好&#xff0c;还真不那么简单&#xff0c;从看代码到弄懂再到自己写&#xff0c;实在是有太多的东西需要学了&#xff0c;用了两天的时间&#xff0c;终于弄出来了&#xff0c;因为用到…...

泉州手机端建站模板/惠州网站seo

今天编写一份Python基础代码&#xff0c;经过Linux上传到github上&#xff0c;遇到点问题&#xff0c;已经解决1.首先sudo su 进入root 用户2.ls 检查出当前文件下有什么文件3. cd 进入你将要上传的文件夹下4.git init(在本机上想要创建一个新的git仓库)5.git add -A(这里的-A是…...

怎样自己做网站推广/seo技术分享

教育 -金融工程学-新-章节资料考试资料-宁波财经学院【】 1.1 随堂测试 1、【多选题】从交易层面来看&#xff0c;属于零和游戏的有&#xff1a; A、股票 B、期货 C、期权 D、互换 参考资料【 】 2、【判断题】远期合约出现的比期货合约早。 A、正确 B、错误 参考资料【 】 3、…...

做网站企业经营范围/百度最新秒收录方法2023

由于 linux 是 64位&#xff0c; jdk 是32 位&#xff0c;导致不能执行 。转载于:https://www.cnblogs.com/sherryxl/p/9201126.html...