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

动漫网站首页设计/驻马店百度seo

动漫网站首页设计,驻马店百度seo,新闻发布会视频,网页视频下载ios题库链接:https://leetcode.cn/problem-list/e8X3pBZi/ 类型题目解决方案哈希表的设计剑指 Offer II 030. 插入、删除和随机访问都是O(1) 的容器HashMap ArrayList ⭐剑指 Offer II 031. LRU 缓存HashMap 双向链表 ⭐哈希表的应用剑指 Offer II 032. 有效的变位…

题库链接:https://leetcode.cn/problem-list/e8X3pBZi/
在这里插入图片描述

类型题目解决方案
哈希表的设计剑指 Offer II 030. 插入、删除和随机访问都是O(1) 的容器HashMap + ArrayList ⭐
剑指 Offer II 031. LRU 缓存HashMap + 双向链表 ⭐
哈希表的应用剑指 Offer II 032. 有效的变位词哈希表:数组模拟哈希表 ⭐
剑指 Offer II 033. 变位词组排序:Arrays.sort(arr) ⭐
剑指 Offer II 034. 外星语言是否排序哈希表:数组模拟哈希表 ⭐
剑指 Offer II 035. 最小时间差排序:计算两两差值 + 鸽巢原理 ⭐

本章主要练习了基本的哈希表设计和应用:

  • 哈希表的时间效率很高,添加、删除和查找操作的时间复杂度都是 O(1)
  • 哈希表经常被用来记录字符串中字母出现的次数字符串中字符出现的位置等信息;
  • 如果哈希表的键的数目是固定的,并且数目不太大,那么也可以使用数组来模拟哈希表,数组的下标对应哈希表的键,而数组的值则与哈希表的值对应。(与哈希表相比,数组的代码更加简洁,应聘者在面试时只要情况允许就可以尽量使用数组模拟哈希表

1. 剑指 Offer II 030. 插入、删除和随机访问都是O(1) 的容器 – P76

设计一个支持在平均 时间复杂度 O(1) 下,执行以下操作的数据结构:

  • insert(val):当元素 val 不存在时返回 true ,并向集合中插入该项,否则返回 false 。
  • remove(val):当元素 val 存在时返回 true ,并从集合中移除该项,否则返回 false 。
  • getRandom:随机返回现有集合中的一项。每个元素应该有 相同的概率 被返回。

1.1 HashMap + ArrayList – O(1)(⭐)

时间复杂度 O ( 1 ) O(1) O(1),空间复杂度 O ( n ) O(n) O(n)

🎈 注意:该题比较麻烦的地方在于删除一个元素,本题解采用的方法是通过交换删除元素与变长列表中最后一个元素的位置,删除最后一个元素实现的,使用这种方法可以避免移动被删除元素后面的元素。

class RandomizedSet {Map<Integer,Integer> map;List<Integer> list;Random random;/** Initialize your data structure here. */public RandomizedSet() {map = new HashMap<>();list = new ArrayList<>();random = new Random();}/** Inserts a value to the set. Returns true if the set did not already contain the specified element. */public boolean insert(int val) {if (map.containsKey(val)) return false;  // val存在 返回falseint index = map.size();map.put(val,index);list.add(val);return true;}/** Removes a value from the set. Returns true if the set contained the specified element. */public boolean remove(int val) {if (!map.containsKey(val)) return false;  // val不存在 返回falseint index = map.get(val);  // val 在变长数组中的索引位置int last = list.get(list.size()-1);  // 变长数组中最后位置的元素list.set(index, last);  // 交换元素map.put(last, index);list.remove(list.size()-1);  // 删除元素map.remove(val);return true;}/** Get a random element from the set. */public int getRandom() {int randomIndex = random.nextInt(list.size());return list.get(randomIndex);}
}/*** Your RandomizedSet object will be instantiated and called as such:* RandomizedSet obj = new RandomizedSet();* boolean param_1 = obj.insert(val);* boolean param_2 = obj.remove(val);* int param_3 = obj.getRandom();*/

在这里插入图片描述

2. 剑指 Offer II 031. LRU 缓存 – P79

运用所掌握的数据结构,设计和实现一个 LRU (Least Recently Used,最近最少使用) 缓存机制 。
实现 LRUCache 类

  • LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存;
  • int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 ;
  • void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留出空间。

2.1 HashMap + 双向链表 – O(1)(⭐)

时间复杂度 O ( 1 ) O(1) O(1),空间复杂度 O ( n ) O(n) O(n)

🎈 提示:此处双向链表使用头插法或者尾插法均可,尾插法代码可参考:

  • LCR 031. LRU 缓存 - 力扣(LeetCode)
class LRUCache {// 1. 头插法,从头节点插入,从尾节点删除class DuLNode {  // 双向链表DuLNode prev;DuLNode next;int key;int value;public DuLNode(){};public DuLNode(int key, int value) {this.key = key;this.value = value;}}DuLNode head;  // 头节点DuLNode tail;  // 尾节点int size;  // 容量Map<Integer,DuLNode> map;public LRUCache(int capacity) {size = capacity;map = new HashMap<>();head = new DuLNode();tail = new DuLNode();head.next = tail;  // head 和 tail 是两个哨兵节点tail.prev = head;}public void deleteNode(DuLNode node) {  // 删除链表中的某节点node.prev.next = node.next;node.next.prev = node.prev;}public void addToHead(DuLNode node) {  // 链表头插法node.next = head.next;head.next.prev = node;head.next = node;node.prev = head;}public void moveToHead(DuLNode node) {  // 将某节点移动到头deleteNode(node);addToHead(node);}public int get(int key) {if (!map.containsKey(key)) return -1;DuLNode node = map.get(key);moveToHead(node);return node.value;}public void put(int key, int value) {if (map.containsKey(key)) {DuLNode node = map.get(key);node.value = value;moveToHead(node);} else {DuLNode node = new DuLNode(key, value);if (map.size() == size) {DuLNode delete = tail.prev;deleteNode(delete);map.remove(delete.key);}map.put(key, node);addToHead(node);}}
}/*** Your LRUCache object will be instantiated and called as such:* LRUCache obj = new LRUCache(capacity);* int param_1 = obj.get(key);* obj.put(key,value);*/

在这里插入图片描述

PS:补充知识1 - 【双向链表】

🎈 可参考
[1] 数据结构笔记(六)-- 双向链表 - 淡定的炮仗的博客【图解鲜明】
[2] 线性表的链式表示-双向链表 - yunfan188的博客【代码示例】

在这里插入图片描述

// 线性表的双向链表存储结构
class DuLNode {  // 双向链表DuLNode prev;DuLNode next;int key;int value;public DuLNode(){};public DuLNode(int key, int value) {this.key = key;this.value = value;}
}

3. 剑指 Offer II 032. 有效的变位词 – P83

给定两个字符串 s 和 t ,编写一个函数来判断它们是不是一组变位词(字母异位词)。
……
注意: s 和 t 中每个字符出现的次数都相同且字符顺序不完全相同,才能称 s 和 t 互为变位词。

3.1 哈希表:数组模拟哈希表 – O(n)(⭐)

时间复杂度 O ( n ) O(n) O(n),空间复杂度 O ( 26 ) O(26) O(26)

class Solution {public boolean isAnagram(String s, String t) {if (s.length() != t.length() || s.equals(t)) return false;  // 长度不一致/两者一样int[] map = new int[26];for (char c : s.toCharArray()) {  // 遍历 s,存入mapmap[c-'a']++;}for (char c : t.toCharArray()) {  // 遍历 t,存入map,并判断是否有字符次数不同的情况map[c-'a']--;if (map[c-'a'] < 0) return false;}return true;}
}

在这里插入图片描述

进阶: 如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?将 int[26] 数组替换成无固定大小的 HashMap 即可,但与 HashMap 相比,使用数组会更快一些,因此只要情况允许就应该尽量使用数组模拟哈希表。

class Solution {public boolean isAnagram(String s, String t) {if (s.length() != t.length() || s.equals(t)) return false;  // 长度不一致/两者一样Map<Character, Integer> map = new HashMap<>();for (char c : s.toCharArray()) {  // 遍历 s,存入mapmap.put(c, map.getOrDefault(c,0)+1);}for (char c : t.toCharArray()) {  // 遍历 t,存入map,并判断是否有字符次数不同的情况map.put(c, map.getOrDefault(c,0)-1);;if (map.get(c) < 0) return false;}return true;}
}

在这里插入图片描述

3.2 排序:Arrays.sort(arr) – O(nlogn)

时间复杂度 O ( n l o g n ) O(nlogn) O(nlogn),空间复杂度 O ( l o g n ) O(logn) O(logn)

class Solution {public boolean isAnagram(String s, String t) {if (s.length() != t.length() || s.equals(t)) {return false;}char[] str1 = s.toCharArray();char[] str2 = t.toCharArray();Arrays.sort(str1);Arrays.sort(str2);return Arrays.equals(str1, str2);}
}

在这里插入图片描述

4. 剑指 Offer II 033. 变位词组 – P85

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

4.1 映射:字符 - 质数 – O(mn)

时间复杂度 O ( m n ) O(mn) O(mn),空间复杂度 O ( n ) O(n) O(n)

🎈 说明:该解法是将 26 个小写字母均映射为了一个质数,这样的话,如果是变位词,那么一定具有相同的值。但该解法存在一个潜在的问题:即由于把字符映射到数字用到了乘法,因此当单词非常长时,乘法就有可能溢出。

class Solution {// 1. 字符映射public List<List<String>> groupAnagrams(String[] strs) {int[] hash = new int[]{2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101};Map<Long, List<String>> map = new HashMap<>();for (String str : strs) {char[] ch = str.toCharArray();long key = 1;for (char c : ch) {key *= hash[c-'a']; }map.putIfAbsent(key, new ArrayList<String>());  // key不存在,才加入map.get(key).add(str);}return new ArrayList<>(map.values());}
}

在这里插入图片描述

PS:补充知识1 - 【求质数】

🎈 可参考
[1] Java求质数常见的3种方式 - 十三度灰的博客

以埃氏筛法(埃拉托斯特尼筛法)为例:【模板题】AcWing 868. 筛质数

💡 原理:先把从2开始的所有数写下来,然后从2开始,将每个质数的倍数都标记成合数,即非质数,直到筛完所有小于等于给定数n的数。这样,留下的就是小于等于n的质数。

import java.util.*;class Main {// 1. 埃氏筛法private final static int N = 1000010;public static void main (String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();List<Integer> primes = new ArrayList<>();boolean[] isPrime = new boolean[N];for (int i = 2; i <= n; i++) {if (!isPrime[i]) {  // 是质数primes.add(i);if (primes.size() == 26) break;for (int j = i+i; j <= n; j += i) {isPrime[j] = true;}} }System.out.println(primes);sc.close();}
}

4.2 排序:Arrays.sort(arr) – O(nmlogm)(⭐)

时间复杂度 O ( n m l o g m ) O(nmlogm) O(nmlogm),空间复杂度 O ( n m ) O(nm) O(nm)

🎈 说明:对变位词进行排序,同一类变位词排序后会得到相同的字符串。

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

在这里插入图片描述

4.3 计数:StringBuilder – O(nm)

时间复杂度 O ( n m ) O(nm) O(nm),空间复杂度 O ( n m ) O(nm) O(nm)

🎈 说明:记录变位词每个字符出现的次数,并将其形成字符串(eg:a2b3c1),同样同一类变位词形成的字符串一定相同。

class Solution {public List<List<String>> groupAnagrams(String[] strs) {Map<String, List<String>> map = new HashMap<String, List<String>>();for (String str : strs) {int[] counts = new int[26];int length = str.length();for (int i = 0; i < length; i++) {counts[str.charAt(i) - 'a']++;}// 将每个出现次数大于 0 的字母和出现次数按顺序拼接成字符串,作为哈希表的键StringBuffer sb = new StringBuffer();for (int i = 0; i < 26; i++) {if (counts[i] != 0) {sb.append((char) ('a' + i));sb.append(counts[i]);}}String key = sb.toString();List<String> list = map.getOrDefault(key, new ArrayList<String>());list.add(str);map.put(key, list);}return new ArrayList<List<String>>(map.values());}
}

在这里插入图片描述

5. 剑指 Offer II 034. 外星语言是否排序 – P87

给定一组用外星语书写的单词 words,以及其字母表的顺序 order,只有当给定的单词在这种外星语中按字典序排列时,返回 true;否则,返回 false。

5.1 哈希表:数组模拟哈希表 – O(nm)(⭐)

时间复杂度 O ( n m ) O(nm) O(nm),空间复杂度 O ( 26 ) O(26) O(26)

class Solution {// 1. 数组模拟哈希表public boolean isAlienSorted(String[] words, String order) {int[] map = new int[26];for (int i = 0; i < order.length(); i++) {map[order.charAt(i)-'a'] = i;  // 构建哈希表,key为英文字符,value为字典顺序}for (int i = 0; i < words.length-1; i++) {if (!isOrder(words[i], words[i+1], map)) {return false;}}return true;}public boolean isOrder(String w1, String w2, int[] map) {int i = 0;for (; i < w1.length() && i < w2.length(); i++) {char c1 = w1.charAt(i);char c2 = w2.charAt(i);if (map[c1-'a'] < map[c2-'a']) return true;  // 正确排序if (map[c1-'a'] > map[c2-'a']) return false;  // 错误排序}return i == w1.length();}
}

在这里插入图片描述

6. 剑指 Offer II 035. 最小时间差 – P88

给定一个 24 小时制(小时:分钟 “HH:MM”)的时间列表,找出列表中任意两个时间的最小时间差并以分钟数表示。

6.1 排序:计算两两差值 + 鸽巢原理 – O(nlogn)(⭐)

时间复杂度 O ( n l o g n ) O(nlogn) O(nlogn),空间复杂度 O ( n ) O(n) O(n)

class Solution {public int findMinDifference(List<String> timePoints) {int n = timePoints.size();if (n > 1440) {  // 鸽巢原理return 0;}int res = Integer.MAX_VALUE;Collections.sort(timePoints);int fp = getMinite(timePoints.get(0));  // 记录第一个元素int prev = fp;  // 通过 prev 记录前一元素for (int i = 1; i < timePoints.size(); i++) {  // 开始两两比较,记录最小值int cur = getMinite(timePoints.get(i));res = Math.min(res, cur - prev);prev = cur;}res = Math.min(res, fp + 1440 - prev);  // 处理首尾 00:00return res;}public int getMinite(String t) {  // 获取时间转换的分钟值return ((t.charAt(0) - '0') * 10 + t.charAt(1) - '0') * 60 + (t.charAt(3) - '0') * 10 + t.charAt(4) - '0';}
}

在这里插入图片描述

相关文章:

【LeetCode】剑指 Offer Ⅱ 第5章:哈希表(6道题) -- Java Version

题库链接&#xff1a;https://leetcode.cn/problem-list/e8X3pBZi/ 类型题目解决方案哈希表的设计剑指 Offer II 030. 插入、删除和随机访问都是O(1) 的容器HashMap ArrayList ⭐剑指 Offer II 031. LRU 缓存HashMap 双向链表 ⭐哈希表的应用剑指 Offer II 032. 有效的变位…...

x86 汇编手册快速入门

本文翻译自&#xff1a;Guide to x86 Assembly 在阅读 Linux 源码之前&#xff0c;我们需要有一些 x86 汇编知识。本指南描述了 32 位 x86 汇编语言编程的基础知识&#xff0c;包括寄存器结构&#xff0c;数据表示&#xff0c;基本的操作指令&#xff08;包括数据传送指令、逻…...

WPF C# Binding绑定不上的解决情况

Binding绑定不上的一般解决情况&#xff1a; 1.添加上下文 DataContext d:DataContext"{d:DesignInstance Typelocal:CommSettingView}"2.添加相对位置 RelativeSource Command"{Binding SaveCommand, RelativeSource{RelativeSource AncestorTypeUserContr…...

【UE 材质】实现方形渐变、中心渐变材质

步骤 一、实现方形渐变 1. 新建一个材质&#xff0c;材质域选择“后期处理” 2. 通过“Mask”节点单独获取R、G通道&#xff0c;可以看到R通道是从左到右0~1之间的变化&#xff0c;对应U平铺 可以看到G通道是从上到下0~1之间的变化&#xff0c;对应V平铺 3. 完善如下节点 二、…...

PHP旅游管理系统Dreamweaver开发mysql数据库web结构php编程计算机网页

一、源码特点 PHP 旅游管理系统是一套完善的web设计系统&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 PHP 旅游管理系统 源码下载地址&#xff1a; https://download.csdn.net/download/qq_41…...

java内存模型讨论及案例分析

常用内存选项 -Xmx&#xff1a; 最大堆大小 -Xms&#xff1a;最小堆大小 -Xss &#xff1a;线程堆栈大小&#xff0c;默认1M 生产环境最好保持 Xms Xmx java内存研究 内存布局 可见&#xff1a; 堆大小 新生代 老年代&#xff0c;新生代EFrom SurvivorTo Survivor。新…...

对战ChatGPT,创邻科技的Graph+AI会更胜一筹吗?

大模型&#xff08;大规模语言模型&#xff0c;即Large Language Model&#xff09;的应用已经成为千行百业发展的必然。特定领域或行业中经过训练和优化的企业级垂直大模型则成为大模型走下神坛、真正深入场景的关键之路。 但是&#xff0c;企业级垂直大模型在正式落地应用前…...

9月2日,每日信息差

1、墨迹天气发布全球雷达融合降水服务产品。据介绍&#xff0c;该产品基于机器学习技术&#xff0c;对全球气象雷达观测图片进行智能识别去噪和外推&#xff0c;并融合全球气象模式、卫星等数据&#xff0c;提供全球范围公里级、分钟级降水预报&#xff0c;可围绕降水灾害的不同…...

uni-app之android项目云打包

1&#xff0c;项目根目录&#xff0c;找到mainfest.json&#xff0c;如果appid是空的&#xff0c;需要生成一个appid 2&#xff0c;点击重新获取appid&#xff0c;这个时候需要登录&#xff0c;那就输入账号密码登录下 3&#xff0c;登陆后可以看到获取appid成功 4&#xff0c;…...

C++的智能指针和可变参数模板详解

智能指针 1. 垃圾回收 垃圾回收机制已经大行其道&#xff0c;得到了诸多编程语言的支持&#xff0c;例如Java、Python、 C#、PHP等。而C虽然从来没有公开得支持过垃圾回收机制&#xff0c;但C98/03标准中&#xff0c;支持使用auto_ptr智能指针来实现堆内存的自动回收; C11新标…...

Docker及常用数据库安装

Docker安装常用数据库 1、Docker安装2、Mysql安装3、Redis安装4、DM安装5、Oracle安装1、Docker安装 1、确保 yum 包更新到最新yum update2、卸载旧版本(如果安装过旧版本的话)yum remove docker docker-common docker-selinux docker-engine3、安装需要的软件包, yum-util 提…...

前端使用 JavaScript 检测用户是否在线的6种方法

要检测用户是否在线&#xff0c;可以使用以下几种方法&#xff1a; 1. 使用navigator.onLine属性&#xff1a; navigator.onLine是一个布尔值&#xff0c;表示用户是否与互联网连接。当用户在线时&#xff0c;该属性的值为true&#xff0c;当用户离线时&#xff0c;该属性的值…...

Windows下Redis的安装

文章目录 一,Redis介绍二,Redis下载三,Redis安装-解压四,Redis配置五,Redis启动和关闭(通过terminal操作)六,Redis连接七,Redis使用 一,Redis介绍 远程字典服务,一个开源的,键值对形式的在线服务框架,值支持多数据结构,本文介绍windows下Redis的安装,配置相关,官网默认下载的是…...

SpringBoot第45讲:SpringBoot定时任务 - Timer实现方式

SpringBoot第45讲:SpringBoot定时任务 - Timer实现方式 定时任务在实际开发中有着广泛的用途,本文是SpringBoot第45讲,主要帮助你构建定时任务的知识体系,同时展示Timer 的schedule和scheduleAtFixedRate例子;后续的文章中我们将逐一介绍其它常见的定时任务,并与SpringBo…...

01背包(换汤不换药)

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 有一个箱子容量为V&#xff08;正整数&#xff0c;0 ≤ V ≤ 20000&#xff09;&#xff0c;同时有n个物品&#xff08;0&#xff1c;n ≤ 30&#xff09;&#xff0c;每个物品有一个体积&#xf…...

c++ folly::baton

Baton folly::Baton 是 Facebook 开源的一个同步原语&#xff0c;它提供了一种简单而灵活的方式来进行线程间的同步。它属于 Folly 库&#xff0c;是 C 编程语言的一个组件。 Baton 通常用作线程间同步、等待、通知的标识符号&#xff0c;常用姿势是&#xff0c;一些线程调用…...

05.sqlite3学习——DML(数据管理:插入、更新、删除)

目录 DML&#xff08;数据管理&#xff1a;插入、更新、删除&#xff09; 插入 更新 删除整个表 语法 实例 DML&#xff08;数据管理&#xff1a;插入、更新、删除&#xff09; 数据操纵&#xff08;DML&#xff09;&#xff1a;用于增、删、改数据 作用&#xff1a;负…...

Netty-ChannelPipeline

EventLoop可以说是 Netty 的调度中心&#xff0c;负责监听多种事件类型&#xff1a;I/O 事件、信号事件、定时事件等&#xff0c;然而实际的业务处理逻辑则是由 ChannelPipeline 中所定义的 ChannelHandler 完成的&#xff0c;ChannelPipeline 和 ChannelHandler应用开发的过程…...

从入门到精通,30天带你学会C++【第六天:与或非三兄弟和If判断语句(博主目前最长文章,2514字)】(学不会你找我)

目录 前言 计算机里的真和假 与或非三兄弟 ​编辑与运算&#xff08;&&&#xff09; 具体说明表格&#xff1a; 举个栗子1&#xff1a; 或运算&#xff08;||&#xff09; 具体说明表格&#xff1a; 举个栗子2&#xff1a; 非运算&#xff08;!&#xff09…...

如何快速找出占用空间最大的文件?

分析&回答 使用 find 命令找到大于指定大小的文件&#xff1a; 当前目录大于500M文件 find ./ -size 500M用户目录大于500M文件 find ~ -type f -size 500M根目录大于500M文件 find / -type f -size 500M 复制代码 让文件按大小排序 du -h * | sort -n 喵呜面试助手&am…...

算法:分治思想处理归并递归问题

文章目录 算法原理实现思路典型例题排序数组数组中的逆序对计算右侧小于当前元素的个数 总结 算法原理 利用归并思想进行分治也是很重要的一种思路&#xff0c;在解决逆序对的问题上有很大的需求空间 于是首先归并排序是首先的&#xff0c;归并排序要能写出来&#xff1a; c…...

小白学Go 基础02-了解Go语言的诞生与演进

Go语言诞生于何时&#xff1f;它的最初设计者是谁&#xff1f;它为什么被命名为Go&#xff1f;它的设计目标是什么&#xff1f;它如今发展得怎么样&#xff1f;带着这些问题&#xff0c;我们一起穿越时空&#xff0c;回到2007年9月Go语言诞生的那一历史时刻吧。 Go语言的诞生 …...

python中如何将十进制转成二进制

python中如何将十进制转成二进制 在 Python 中&#xff0c;你可以使用内置的 bin() 函数将十进制数转换为二进制表示形式。以下是使用 bin() 函数进行转换的示例&#xff1a; decimal_number 10binary_number bin(decimal_number)print(binary_number) # 输出&#xff1a;…...

数据结构--5.0.1图的存储结构

目录 一、邻接矩阵&#xff08;无向图&#xff09; 二、邻接矩阵&#xff08;有向图&#xff09; 三、邻接矩阵&#xff08;网&#xff09; 四、邻接表&#xff08;无向图&#xff09; 五、邻接表&#xff08;有向图&#xff09; ——图的存储结构相比较线性表与树来说就复…...

解决win10 wsl子系统安装的ubuntu环境中lsof,netstat命令查看端口没有任何输出的问题

最近有个以前的ssm项目需要在新电脑上运行测试一下&#xff0c;发现需要redis环境&#xff0c;看了官网说&#xff1a;有两种选择&#xff1a; 1. 要么在虚拟机比如vmware安装linux基础环境&#xff0c;然后再安装redis 2. 要么可以利用win10的wsl linux子系统安装ubuntu&…...

【OpenFeign】OpenFeign结合Hystrix和Sentinel实现熔断降级

OpenFeign可以与Hystrix和Sentinel结合使用&#xff0c;实现降级和熔断。 OpenFeign与Hystrix结合使用 使用OpenFeign需要引入OpenFeign的依赖&#xff1a; <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-sta…...

软件工程(十) 需求工程之需求开发与管理

前面我们学习到了需求工程的概念与分类,我们知道了需求工程主要分为需求开发和需求管理,但是没有说明到底该如何开发需求,有哪些方法去开发需求。到底该如何进行需求管理,又有哪些进行需求管理的方式。具体是如何去做的。下面我们将会详细进行描述。 1、需求开发 1.1、需…...

C++网狐服务器引入开源日志库spdlog

很多人对日志库不以为然&#xff0c;包括网狐这种十几年的公司都不重视&#xff0c;其实日志库记录的东西能在线上出问题时高效解决&#xff0c;特别是别人写的东西&#xff0c;人又走了&#xff0c;出了问题&#xff0c;还可以用日志分析快速解决。要是没有日志记录&#xff0…...

【C++】—— c++11之智能指针

前言&#xff1a; 本期&#xff0c;我们将要学习的是在c11中新提出的概念——异常指针&#xff01; 目录 &#xff08;一&#xff09;智能指针的引入 &#xff08;二&#xff09;内存泄漏 1、什么是内存泄漏&#xff0c;内存泄漏的危害 2、内存泄漏分类&#xff08;了解&a…...

html5——前端笔记

html 一、html51.1、理解html结构1.2、h1 - h6 (标题标签)1.3、p (段落和换行标签)1.4、br 换行标签1.5、文本格式化1.6、div 和 span 标签1.7、img 图像标签1.8、a 超链接标签1.9、table表格标签1.9.1、表格标签1.9.2、表格结构标签1.9.3、合并单元格 1.10、列表1.10.1、ul无序…...