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

秋招突击——7/22——复习{堆——前K个高频元素}——新作{回溯——单次搜索、分割回文串。链表——环形链表II,合并两个有序链表}

文章目录

    • 引言
    • 复习
      • 堆——前K个高频元素
        • 个人实现
        • 复习实现二
        • 参考实现
    • 新作
      • 单词搜索
        • 个人实现
        • 参考实现
      • 分割回文串
        • 个人实现
        • 参考实现
      • 环形链表II
        • 个人实现
        • 参考实现
      • 两个有序链表
        • 个人实现
    • 总结

引言

  • 又是充满挑战性的一天,继续完成我们的任务吧!继续往下刷,一场面试三个构成:八股、项目和算法,都得抓住!加油
  • 今天复习一下堆,然后把回溯剩下的题目全部做完,然后的继续往下做链表!

复习

  • 对顶堆——数据流的中位数
    • front是大顶堆,back是小顶堆

堆——前K个高频元素

  • 题目链接
  • 第一次练习链接
  • 第二次练习链接
  • 虽然已经做了两次,但是一点都想不起来应该怎么做!
个人实现
  • 这道题可以通过设置不同的数据结构实现,通过key-value改变记录每一个数字出现的频率,然后通过PriorityQueue来实现根据频率进行排序,这样效率就快很多!那么怎么实现自定义排序就很重要!
class Solution {class Item implements Comparable<Item>{int val;int freq;Item(int value,int frequency){val = value;freq = frequency;}// override the compareTo function@Overridepublic int compareTo(Item o){return Integer.compare( this.freq,o.freq);}}public int[] topKFrequent(int[] nums, int k) {// define map to store the key-value item ,priorityqueue to sort the itemPriorityQueue<Item> pq = new PriorityQueue<>(Comparator.reverseOrder());Map<Integer,Item> map = new HashMap<>();// traverse all the elementsfor(int x :nums){if(map.containsKey(x)){Item temp = map.get(x);temp.freq = temp.freq + 1;System.out.println(map.get(x).freq);}else{Item temp = new Item(x,1);map.put(x,temp);pq.add(temp);}}// traverse the front k elementsint[] res = new int[k];//System.out.println(pq.peek().val);for(int i = 0;i < k;i ++)res[i] = pq.poll().val;return res;}
}

问题

  • 如何重写对象compare方法
    • 要实现Comparable接口
    • compareTo方法是接受当前类型的变量,进行的比较
    • compareTo方法,返回的是一个int类型的变量
    • 实现comparable接口,需要实现compareTo方法
class Item implements Comparable<Item> {int val;int freq;Item(int value, int frequency) {val = value;freq = frequency;}// override the compareTo function@Overridepublic int compareTo(Item o) {return Integer.compare(o.freq, this.freq); // descending order}
}

在这里插入图片描述

  • 致命问题!!PriorityQueue并不会自动重新排序!需要每次更新都要插入和删除对应的元素,不然会出问题!

在这里插入图片描述

复习实现二
  • 这里不知道自己着了什么魔,这个题目为啥要想的那么复杂,不就是先统计频率,然后再根据频率进行排序吗?为什么要想那么多!
class Solution {class Item implements Comparable<Item>{int val;int freq;Item(int value,int frequency){val = value;freq = frequency;}// override the compareTo function@Overridepublic int compareTo(Item o){return Integer.compare( this.freq,o.freq);}}public int[] topKFrequent(int[] nums, int k) {// define map to store the key-value item ,priorityqueue to sort the itemPriorityQueue<Item> pq = new PriorityQueue<>(Comparator.reverseOrder());Map<Integer,Item> map = new HashMap<>();// traverse all the elementsfor(int x :nums){if(map.containsKey(x)){Item temp = map.get(x);temp.freq = temp.freq + 1;}else{map.put(x,new Item(x,1));}}// traverse the values int the for(Item x:map.values()){pq.add(x);}// traverse the front k elementsint[] res = new int[k];//System.out.println(pq.peek().val);for(int i = 0;i < k;i ++)res[i] = pq.poll().val;return res;}
}

在这里插入图片描述
问题

  • 这里Map的相关方法使用起来还是带有试验的性质,很多方法当时写了就错了,编译器提醒没有这种方法,才知道应该换!这里再复习一遍!
  • 加入元素:
    • put(K key,V value)
    • 如果存在旧值,会将其替换
    • 注意,没有set方法,那是list才有的
  • 获取对应的value
    • get(Object key)
    • 如果不含有对应的key,就返回null
  • 删除对应的元素
    • remove(Object key)
  • 判定是否含有对应的元素
    • containsKey(Obejct key)
    • 是containsKey,contains是Set的方法
  • 判定是否为空
    • isEmpty
    • 不是Empty,每次都写错
  • 获取所有value
    • values
    • 这里是返回所有的values,不是valueset
  • 获取所有的key
    • keySet
    • 不是keys
参考实现

使用计数排序

  • 将所有出现的频次记录在对应的数组中,然后根据索引进行遍历,减少遍历的时间!

这里就不记录了,如果感兴趣,就自己去看!

限定堆使用的大小

  • 如果直接将所有的元素加入到堆中进行排序,需要消耗很多时间,这里只要前K个元素,所以只需要维护一个大小为K的堆就行了!
class Solution {class Item implements Comparable<Item>{int val;int freq;Item(int value,int frequency){val = value;freq = frequency;}// override the compareTo function@Overridepublic int compareTo(Item o){return Integer.compare( this.freq,o.freq);}}public int[] topKFrequent(int[] nums, int k) {// define map to store the key-value item ,priorityqueue to sort the itemPriorityQueue<Item> pq = new PriorityQueue<>();Map<Integer,Item> map = new HashMap<>();// traverse all the elementsfor(int x :nums){if(map.containsKey(x)){Item temp = map.get(x);temp.freq = temp.freq + 1;}else{map.put(x,new Item(x,1));}}// traverse the values int the for(Item x:map.values()){if(pq.size() < k)pq.add(x);else{if(pq.peek().freq < x.freq){pq.poll();pq.add(x);}}}// traverse the front k elementsint[] res = new int[k];//System.out.println(pq.peek().val);for(int i = 0;i < k;i ++)res[i] = pq.poll().val;return res;}
}

在这里插入图片描述

新作

单词搜索

题目链接

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意

  • 整个二维矩阵的大小可能是一个单元格,仅仅只有一个字母,可能是边界情况需要特殊处理。
  • 目标单词的长度是遍历的深度,也就是遍历树的高度,然后上下左右是四个方向,是每一层遍历的宽度。
个人实现
  • 这道题是典型的回溯,回溯的要素设定如下
    • idx 界限值是 单词的长度
    • 每一层遍历的宽度是上下左右四个方向
    • 需要维护一个exist数组,标记每一个元素的访问情况。
class Solution {// define the global string to store the mid situationStringBuilder str = new StringBuilder();// exist matrix to store the attendenceboolean[][] exist ;//boolean res = false;int[][] step = {{1,0},{0,1},{-1,0},{0,-1}};boolean dfs(char[][] board,String word,int idx,int x,int y){if(idx == word.length()){return true;}for(int i = 0;i < 4;i ++){int xNext = x + step[i][0];int yNext = y + step[i][1];if(xNext >= 0 && xNext < board.length ){if(yNext >= 0 && yNext < board[0].length){if(!exist[xNext][yNext] && board[xNext][yNext] == word.charAt(idx)){exist[xNext][yNext] = true;if(dfs(board,word,idx + 1,xNext,yNext)) return true;exist[xNext][yNext] = false;}}}}return false;}public boolean exist(char[][] board, String word) {//define row and col of the matrixint row = board.length;int col = board[0].length;exist = new boolean[row][col];// traverse the board to find the first charfor(int i = 0;i < board.length;i ++){for(int j = 0;j < board[0].length;j ++){if(board[i][j] == word.charAt(0)){//System.out.println("first " + board[i][j]);exist[i][j] = true;if(dfs(board,word,1,i,j)) return true;exist[i][j] = false;}}}return false;}
}

在这里插入图片描述
代码量真多,不过还是在规定时间内完成了!

参考实现

这里可以将融合到原来的数组中,通过修改特殊的字符,然后判定当前位置是否已经访问过!

分割回文串

题目链接

在这里插入图片描述
注意

  • 回文串,逆序和顺序都是一样的
  • 仅由小写字母构成,不用担心字母大小写变换
  • 长度是1到16,可能有边界情况需要特殊考虑!
个人实现
  • 这道题是一个组合体,找到所有的组合,然后在判断一下,是否是回文就行了。
  • 总结一下回溯的几个要素
    • 树的深度:总的元素数量
    • 节点的宽度:每一个节点放或者不放两种情况。

错误!!这里审错题目了!是分割字符串,应该然后分割之后每一个字串都是回文

  • 修改一下回溯的几个要素
    • 树的深度:分割的位置,总的元素数减一,每一个元素都有一个分割点
    • 节点的宽度:是否在当前点进行分割
class Solution {List<String> list = new ArrayList();List<List<String>> res = new ArrayList<>();boolean judge(String str){str = str.trim();StringBuilder sb = new StringBuilder(str);sb.reverse();return str.equals(sb.toString());}void dfs(StringBuilder s,int idx,int len){if(idx == len ){if(judge(s.toString())){list.add(s.toString());res.add(new ArrayList(list));list.remove(list.size() - 1);}return;}// cutint subIdx = len - s.length();String temp = s.substring(0,idx - subIdx);//System.out.print("idx:" + idx + "  temp:" + s.substring(0,idx - subIdx));if(judge(temp)){list.add(temp);//System.out.println("  subtemp:" + s.substring(idx - subIdx));dfs(new StringBuilder(s.substring(idx - subIdx)),idx + 1,len);list.remove(list.size() - 1);}// not cutdfs(s,idx + 1,len);}public List<List<String>> partition(String s) {dfs(new StringBuilder(s),1,s.length());return res;}
}

在这里插入图片描述

问题

  • StringBuilder获取子串是substring,没有大写,而且也没有简称,不是subString,不是subStr ,都不是!!是substring

    • substring(strat_idx):从start_idx到末尾
    • substring(start_idx,end_idx):从start_idx到end_idx这段子串 ,不包括end_idx,相当于在end_idx前面一个字符做的分割点
  • String去除空格

    • str.trim()去除前后空格
    • str.replace(" “,”");
    • 正则表达式replaceAll(“\s+”, “”)
  • 我这里回溯的角度可能有问题,导致时间上有很多耗费!

参考实现

暴力搜索 + 迭代优化

暴力搜索

  • 这里举得是区间长度,也就是区间起点,然后列举区间的终点,不同于我们列举每一个分割点!
  • 迭代深度
    • 每一区间的起点的位置
  • 单次迭代的宽度
    *

迭代优化

  • 利用了回文字符串的中间子串也一定是回文字符串的特性,具体如下图!
for(int j = 0;j < n;j ++){for(int i = 0;i <= j;i ++){if(i == j)	f[i][j] = true;else if(s[i] == s[j]){if(i + 1 > j -1 || f[i + 1][j - 1])	f[i][j] = true;}}
}

具体实现代码

class Solution {boolean[][] f;List<String> list = new ArrayList();List<List<String>> res = new ArrayList<>();void dfs(String s,int idx){int m = s.length();if(idx == m){res.add(new ArrayList(list));return ;}for(int i = idx ;i < m; i++){if(f[idx][i]){//System.out.println("idx:" + idx + " i" + i + " substr:"+s.substring(idx,i+1));list.add(s.substring(idx,i + 1));dfs(s,i+1);list.remove(list.size() - 1);}}}public List<List<String>> partition(String s) {int m = s.length();f = new boolean[m][m];for(int j = 0;j < m;j ++){for(int  i = 0;i <= j;i ++){if(i == j)  f[i][j] = true;else if(s.charAt(i) == s.charAt(j)){if(i + 1 > j - 1 || f[i + 1][j - 1])    f[i][j] = true;}}}dfs(s,0);return res;}
}

在这里插入图片描述
确实更快,那个回文推导的得稍微记一下!

环形链表II

  • 题目连接
    在这里插入图片描述
    在这里插入图片描述
    注意
  • pos表示-1或者有效索引
  • 不用担心数字越界
  • 空间复杂度要求是O(1)
个人实现
  • 这个明显是用快慢指针,首先判定是否有环,然后在有环的情况下,判定出对应环的起始点!
  • 难点在第二步,不过感觉这个环的起始点,之前好像做过。感觉快慢节点在有环的情况下,应该有特殊情况!

这里还是不知道怎么推导出来的,这题挂了!

如果不强制要求空间复杂度的话,只需要一次遍历就能实现!

这里就不写了,没什么意思!

参考实现
  • 这里推导的比较绕,我看了很多遍,总结起来就是一句话
    • 快慢指针相遇的地方,和链表的头节点分别同时触发一个速度为1的节点遍历,相遇点就是入点

先套一个快慢指针的模板

while(f != null){f = f.next;s = s.next;if(f == null)	return false;f = f.next;if(f == s)	return true;
}

最终实现代码

/*** Definition for singly-linked list.* class ListNode {*     int val;*     ListNode next;*     ListNode(int x) {*         val = x;*         next = null;*     }* }*/
public class Solution {public ListNode detectCycle(ListNode head) {if(head == null || head.next == null)   return null;ListNode s = head;ListNode f = head.next;// judge whether contains circlewhile(f != null){f = f.next;s = s.next;if(f == null)   return null;f = f.next;if(f == s){s = head;f = f.next;while(s != f)   {s = s.next;f = f.next;}return s;}}return null;}
}

两个有序链表

  • 题目链接
    在这里插入图片描述
    在这里插入图片描述
  • 第一次练习连接
个人实现
  • 这个题目第二次做了,而且是个简单题,直接遍历就行了
/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {ListNode head1 = list1;ListNode head2 = list2;ListNode dummy = new ListNode();ListNode temp = dummy;while(head1 != null && head2 != null){if(head1.val < head2.val){temp.next = head1;head1 = head1.next;temp = temp.next;}else{temp.next = head2;head2 = head2.next;temp = temp.next;}}temp.next = (head1 == null ? head2:head1);return dummy.next;}
}

在这里插入图片描述

题目很简单,但是让我想到了某一次字节的面试,面试官觉得我代码写的太差了,那道题是一个大数加法,使用链表表示的,我最后写的太差了!毕竟我已经换了三道题,感觉完蛋了!

总结

  • 今天状态不得行,刷到了第三题,我就厌烦的不行,不过还是得调整一下!
  • 真的是,每天刷题,刷的恶心,恶心的不行!后续还是得加油!
  • 又搞到好晚,我要睡了!
  • 明天面试百度,加油!

相关文章:

秋招突击——7/22——复习{堆——前K个高频元素}——新作{回溯——单次搜索、分割回文串。链表——环形链表II,合并两个有序链表}

文章目录 引言复习堆堆——前K个高频元素个人实现复习实现二参考实现 新作单词搜索个人实现参考实现 分割回文串个人实现参考实现 环形链表II个人实现参考实现 两个有序链表个人实现 总结 引言 又是充满挑战性的一天&#xff0c;继续完成我们的任务吧&#xff01;继续往下刷&a…...

android13禁用某个usb设备

总纲 android13 rom 开发总纲说明 目录 1.前言 2.触摸设备查看 3.功能修改 3.1 禁用usb触摸 3.2 禁用usb键盘 3.3 禁用usb遥感 4.查看生效与否 5.彩蛋 1.前言 用户想要禁止使用某些usb设备,需要系统不能使用相关的usb设备,例如usb触摸屏,usb键盘,usb遥感等等usb…...

tmux相关命令

tmux相关命令 1、tmux介绍2、会话&#xff08;session&#xff09;、窗口&#xff08;windows&#xff09;、窗格&#xff08;pane&#xff09;3、会话相关命令4、窗口相关命令5、窗格相关命令6、内容查看7、tmux配置文件 1、tmux介绍 略 2、会话&#xff08;session&#xf…...

初创小程序公司怎么选服务器合作商

初创小程序公司怎么选服务器合作商&#xff1f;在移动互联网的浪潮中&#xff0c;小程序以其轻量、便捷、即用即走的特点&#xff0c;成为了众多初创企业快速触达用户、展现创意与服务的理想平台。然而&#xff0c;对于初创小程序公司而言&#xff0c;如何在纷繁复杂的服务器市…...

基于微信小程序+SpringBoot+Vue的自习室选座与门禁系统(带1w+文档)

基于微信小程序SpringBootVue的自习室选座与门禁系统(带1w文档) 基于微信小程序SpringBootVue的自习室选座与门禁系统(带1w文档) 本课题研究的研学自习室选座与门禁系统让用户在小程序端查看座位&#xff0c;预定座位&#xff0c;支付座位价格&#xff0c;该系统让用户预定座位…...

【Linux】进程IO|重定向|缓冲区|dup2|dup|用户级缓冲区|模拟缓冲区

目录 前言 重定向 实验一 为什么log.txt文件的文件描述符是1 为什么向stdout打印的信息也出现在文件中 实验二 用户级缓冲区 为什么要有用户级缓冲区 系统调用 dup 为什么close(fd1)之后还能向log.txt写入数据&#xff1f; dup2 缓冲区 观察现象 测试1 测试2 测…...

bug bug bug

importError: DLL load failed while importing _multiarray_umath: 找不到指定的模块。 Traceback (most recent call last): File "D:\yolov8_about\ultralytics-main3\trainCPU.py", line 4, in <module> from ultralytics import YOLO File "…...

医疗器械上市欧美,需要什么样的网络安全相关申报文件?

医疗器械在欧美上市时&#xff0c;需要提交的网络安全相关申报文件主要包括以下几个方面&#xff0c;这些要求基于欧美地区的法律法规和监管机构的指导文件。 一、美国FDA要求 1. 网络安全管理计划 内容&#xff1a;制造商需要提交一份网络安全管理计划&#xff0c;该计划应包含…...

【UbuntuDebian安装Nginx】在线安装Nginx

云计算&#xff1a;腾讯云轻量服务器 操作系统&#xff1a;Ubuntu-v22 1.更新系统软件包列表 打开终端并运行以下命令来确保你的系统软件包列表是最新的&#xff1a; sudo apt update2.安装 Nginx 使用以下命令安装 Nginx&#xff1a; sudo apt install nginx3.启动 Nginx…...

Jacoco 单元测试配置

前言 编写单元测试是开发健壮程序的有效途径&#xff0c;单元测试写的好不好可以从多个指标考量&#xff0c;其中一个就是单元测试的覆盖率。单元测试覆盖率可以看到我们的单元测试覆盖了多少代码行、类、分支等。查看单元测试覆盖率可以使用一些工具帮助我们计算&#xff0c;…...

App Instance 架构示例

前言 在Unity程序设计过程中&#xff0c;我们处理的第一个对象是Application Instance。 它的主要职责是启动流程管理、卸载流程管理&#xff0c;次要职责是管理在内部的子系统生命周期。其他职责&#xff0c;提供或桥接应用程序的配置信息、及其他第三方接口。 它通常以单例的…...

【论文速读】| MoRSE:利用检索增强生成技术填补网络安全专业知识的空白

本次分享论文&#xff1a;MoRSE: Bridging the Gap in Cybersecurity Expertise with Retrieval Augmented Generation 基本信息 原文作者&#xff1a;Marco Simoni, Andrea Saracino, Vinod Puthuvath, Maurco Conti 作者单位&#xff1a;意大利比萨国家研究委员会信息学与…...

pip install albumentations安装下载超级细水管

albumentations 是一个用于图像增强的 Python 库&#xff0c;它提供了丰富的图像变换功能&#xff0c;可以用于数据增强&#xff0c;从而提高深度学习模型的泛化能力。 直接安装命令&#xff1a; pip install albumentations但是如果半夜遇到这种19kB/s的下载速度 为头发着想&…...

驱动开发系列07 - 驱动程序如何分配内存

一:概述 Linux 内核提供了丰富的内存分配函数、在本文中,我们将介绍在设备驱动程序中分配和使用内存的方法,以及如何优化系统的内存资源。由于内核为驱动程序提供了统一的内存管理接口。所以我们不会去讨论不同架构是如何管理内存的,文本不涉及分段、分页等问题,此外在本文…...

【Jackson】注解及其使用

Jackson库提供了多种注解&#xff08;annotations&#xff09;&#xff0c;可以用来控制JSON序列化和反序列化的行为。这些注解允许你灵活地映射Java对象与JSON数据之间的关系。下面将详细介绍一些常用的Jackson注解及其用法。 1. JsonProperty 作用: 用于指定JSON属性与Java…...

LeetCode24 两两交换链表中的节点

前言 题目&#xff1a; 24. 两两交换链表中的节点 文档&#xff1a; 代码随想录——两两交换链表中的节点 编程语言&#xff1a; C 解题状态&#xff1a; 没画图&#xff0c;被绕进去了… 思路 思路还是挺清晰的&#xff0c;就是简单的模拟&#xff0c;但是一定要搞清楚交换的…...

AI OS

一&#xff0c;概念 AI OS, 或AI for OS&#xff0c;也就是近一年来伴随着人工智能的热度而衍生出的一个新的概念 - 人工智能操作系统。 为什么提出AI OS的概念&#xff1f; 这是因为人工智能技术的发展势头太过迅猛&#xff0c;尤其在深度学习、大模型等AI技术的突破后&…...

Dubbo 黑白名单机制详解

在微服务架构中&#xff0c;服务间的安全和流量控制是非常重要的。在众多 Java 微服务框架中&#xff0c;Apache Dubbo 作为一款高性能的 RPC 框架&#xff0c;提供了丰富的功能来管理服务调用。在 Dubbo 中&#xff0c;黑白名单机制是保障服务安全性和可控性的一个重要手段。本…...

配电房智能巡检机器人怎么选?

智能巡检机器人行业发展现状 2022年中国智能巡检机器人市场规模达到了15.66亿元。其中&#xff1a;电力智能巡检机器人规模14.88亿元&#xff0c;其他智能巡检机器人规模为0.78亿元。2023年中国智能巡检机器人市场规模约为19.71亿元。其中&#xff1a;电力智能巡检机器人规模…...

husky引发git commit报错的解决方案

在git commit的时候&#xff0c;有可能会遇到这样的报错&#xff0c;husky - pre-commit hook exited with code 1 (error) 出现这个问题的原因主要是&#xff0c;假如项目中采用 husky和lint-staged结合进行代码校验&#xff0c;那么&#xff0c;只要项目代码中有不规范的地方…...

韩顺平0基础学Java——第37天

p736-758 MySQL三层结构 1.所谓安装Mysql数据库&#xff0c;就是在主机安装一个数据库管理系统(DBMS)&#xff0c;这个管理程序可以管理多个数据库。DBMS(database manage system) 2.一个数据库中可以创建多个表,以保存数据(信息)。 3.数据库管理系统(DBMS)、数据库和表的关系…...

Layer2区块链扩容方案(1)——总述

写在前面 这篇文章作为一个简单介绍&#xff0c;很多技术只是大致提及或者引用&#xff0c;之后会在详细学习后逐项解释。 补充知识 在了解扩容方案之前&#xff0c;我们最好了解一些相关的知识概念 EVM “EVM” 是“Ethereum Virtual Machine”&#xff08;以太坊虚拟机&…...

AWS监控工具,监控性能指标

执行AWS监视是为了跟踪在AWS环境中主动运行的应用程序工作负载和资源&#xff0c;AWS监视器跟踪各种AWS云指标&#xff0c;以帮助提高在其上运行的应用程序的整体性能。 借助阈值突破警报系统&#xff0c;AWS应用程序监控在识别性能瓶颈来源方面起着至关重要的作用&#xff0c…...

义务外贸wordpress独立站主题

健身器材wordpress网站模板 跑步机、椭圆机、划船机、动感单车、健身车、深蹲架、龙门架、健身器材wordpress网站模板。 https://www.jianzhanpress.com/?p4251 农业机械wordpress网站模板 植保机械、畜牧养殖机械、农机配件、土壤耕整机械、农业机械wordpress网站模板。 …...

初等数论精解【4】

文章目录 算术基本定理基础理论整数运算规则1. 加法性质2. 减法性质3. 乘法性质4. 除法性质5. 其他性质 整数运算的性质整数构成域吗 参考文献 算术基本定理 基础 任何一个大于1的整数可以被分解为素因数的连乘积。 a p 1 p 2 . . . . p n ≥ 1 ap_1\times p_2....\times…...

MongoDB教程(二十二):MongoDB固定集合

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

20240724----idea的Java环境卸载与安装

1.删除旧有的jdk https://blog.csdn.net/weixin_42168713/article/details/112162099 &#xff08;补充&#xff1a;我把用户变量和java有关的都删了&#xff09; 2.下载新的jdk百度网盘链接 链接&#xff1a;https://pan.baidu.com/s/1gkuLoxBuRAtIB1IzUTmfyQ 提取码&#xf…...

C语言 ——— 函数指针数组的讲解及其用法

目录 前言 函数指针数组的定义 函数指针数组的使用 前言 数组是存放一组相同类型数据的存储空间 关于指针数组的知识请见&#xff1a;C语言 ——— 指针数组 & 指针数组模拟二维整型数组-CSDN博客 那么要将多个函数的地址存储到数组中&#xff0c;这个数组该如何定义…...

鸿蒙仓颉语言【cryptocj 库】(介绍与SHA、MD5、HMAC摘要算法)

cryptocj 库 介绍 cryptocj 是一个安全的密码库&#xff0c;包括常用的密码算法、常用的密钥生成和签名验证。 该库是对 C 语言的 openSSL 封装的仓颉加密算法 1 提供SHA、MD5、HMAC摘要算法。 前置条件&#xff1a;NA 场景&#xff1a; OHOS&#xff0c; Linux&#xff…...

设计App的后端接口分类以及环境依赖包详情

目录 App的后端接口分类 1. 用户登录与注册 2. 设备初始化 3. 广告与推广 4. 应用配置与功能 5. 支付系统 6. 内容分发 7. 资源下载 8. 视频内容 9. 用户行为分析 10. 安全与合规 设计建议 基于Easyswoole&#xff0c;可以在系统中引入需要的一些常见依赖包&#…...

接入百度文心一言API教程

然后&#xff0c;编辑文章。点击AI识别摘要&#xff0c;然后保存即可 COREAIPOWER设置 暂时只支持经典编辑器.古腾堡编辑器等几个版本后支持.在比期间,你可以自己写点摘要 摘要内容 AL识别摘要 清空 若有收获&#xff0c;就点个赞吧 接入文心一言 现在百度文心一言&…...

classfinal太强了,再也不怕被反编译了

这段时间在辛辛苦苦的编写一个算法程序&#xff0c;担心部署到客户服务器&#xff0c;客户反编译jar包&#xff0c;破解程序&#xff0c;那努力就白费了&#xff01; 在网上查询&#xff0c;发现个好东东&#xff0c;classfinal可以加密jar包&#xff0c;防止反编译&#xff0…...

DP-适配器模式代码重新理解

package com.designpatterns.adapter;/*** 定义鸭子接口*/ public interface Duck {/*** 定义鸭子呱呱叫(quack)*/public void quack();public void fly(); }package com.designpatterns.adapter;/*** 实现一个绿头鸭*/ public class MallarDuck implements Duck{Overridepubl…...

minio安装小计一则

安装minio并且使用api方式对文件进行操作 本文使用docker安装 docker pull minio/minio docker pull minio/mc &#xff08;mc为minio文件运行命令行工具&#xff09; 使用如下命令运行Minio服务器容器&#xff1a; windwos powershell运行命令 docker run -p 9000:9000…...

# Redis 入门到精通(九)-- 主从复制(1)

Redis 入门到精通&#xff08;九&#xff09;-- 主从复制&#xff08;1&#xff09; 一、redis 主从复制 – 主从复制简介 1、互联网“三高”架构 高并发高性能高可用 2、你的“Redis”是否高可用&#xff1f; 1&#xff09;单机 redis 的风险与问题 问题1.机器故障  现…...

SpringBoot整合ElasticSearch的elasticsearch-java出现jakarta.json.spi.JsonProvider报错问题

一、原因 报错内容如下 org.springframework.beans.factory.BeanCreationException: Error creating bean with name esClient defined in class path resource [com/elasticsearch/config/ElasticSearchConfig.class]: Bean instantiation via factory method failed; nes…...

git 操作汇总【迭代更新中】

文章目录 0x1初始化操作0x11 生成公钥0x12 配置账号和邮箱 0x20x21 拉取代码0x22 推送代码0x23 设置远端分支 0x30x31 提交mr 0x40x41 子模块0x42 子模块添加 0x1初始化操作 0x11 生成公钥 ssh-keygen0x12 配置账号和邮箱 git config --global user.name username git confi…...

看 Unity 组件的源码 —— ILSpy

ILSpy 是开源的 .NET 程序集浏览器和解编译器。 下载 ILSpy ILSpy Github 地址&#xff1a;icsharpcode/ILSpy: .NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform! (github.com) 它有 Release 包可以下载 也提供 IDE 的…...

Axivion Suite 7.8现已发布

现已实现100%覆盖MISRA规则&#xff0c;并加入了高级功能来提高代码分析能力。 我们很高兴地宣布Axivion Suite 7.8发布。全新版本的Axivion Suite对编译器、配置、分析、仪表板 (WebUI)和IDE插件的架构验证和静态代码分析功能均进行了升级。 100%覆盖所有可测试的MISRA规则 …...

从零开始!JupyterNotebook的安装教程

安装 Anaconda 1、下载 Anaconda&#xff1a; 访问 Anaconda 官方网站 (https://www.anaconda.com/products/distribution/) 下载适合您操作系统的 Anaconda 发行版。 2、安装 Anaconda&#xff1a; Windows&#xff1a;运行下载的安装程序&#xff0c;选择“Just Me”…...

使用kali进行端口扫描

目录 一、使用nping工具向目标主机的指定端口发送自定义数据包 二、使用Nmap工具进行端口扫描 三、使用Zenmap工具进行扫描 一、使用nping工具向目标主机的指定端口发送自定义数据包 nping工具允许用户产生各种网络数据包&#xff08;TCP&#xff0c;UDP&#xff0c;ICMP&am…...

C#使用Clipper2进行多边形合并、相交、相减、异或的示例

Clipper2库介绍 开源库介绍&#xff1a; Clipper2在Github上的地址&#xff1a;https://github.com/AngusJohnson/Clipper2 Clipper2库对简单和复杂多边形执行交集&#xff08;Intersection&#xff09;、并集&#xff08;Union&#xff09;、差分&#xff08;Difference&…...

Spring-Aop源码解析(二)

书接上文&#xff0c;上文说到&#xff0c;specificInterceptors 不为空则执行createProxy方法创建代理对象&#xff0c;即下图的createProxy方法开始执行&#xff0c;生成代理对象&#xff0c;生成代理对象有两种方式&#xff0c;JDK和CGLIB。 createAopProxy就是决定使用哪…...

antdesgin table 组件下载成excel

文章目录 发现宝藏一、需求二、报错 发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【宝藏入口】。 一、需求 原组件如下&#xff0c;需要添加下载功能 import React, { useState } from rea…...

MongoDB - 聚合阶段 $group 的使用

文章目录 1. 构造测试数据1. 示例 12. 示例23. 示例34. 示例45. 示例5 2. 构造测试数据1. 示例12. 示例23. 示例3 在 MongoDB 中&#xff0c;$group 是聚合管道中的一个阶段&#xff0c;用于根据指定的条件对文档进行分组。 {$group: {_id: <expression>, // 分组的依据…...

Flutter 插件之 easy_refresh(下拉刷新、上拉加载)

今天给大家较少一下日常开发中最常见的一个功能,就是 下拉刷新、上拉加载,这个在我们使用分页功能是最常见的。 此前我我也写了一篇关于 下拉刷新、上拉加载。 Flutter 下拉刷新、上拉加载flutter_easyrefresh的使用https://blog.csdn.net/WangQingLei0307/article/details/…...

DVWA的安装和使用

背景介绍 DVWA是Damn Vulnerable Web Application的缩写&#xff0c;是一个用于安全脆弱性检测的开源Web应用。它旨在为安全专业人员提供一个合法的测试环境&#xff0c;帮助他们测试自己的专业技能和工具&#xff0c;同时也帮助web开发者更好地理解web应用安全防范的过程。DV…...

CSS相关记录

文章目录 backgroundposition文字displayflexjustify-contentalign-itemsflex-directionflex-wrap gridimportant transformtranslate&#xff08;位移&#xff09;scale&#xff08;缩放&#xff09;rotate&#xff08;旋转&#xff09;origin (旋转中心点)skew (倾斜 ) borde…...

Fedora40安装telnet-server启用telnet服务

Fedora40安装telnet-server启用telnet服务 安装 telnet-server sudo yum install telnet-server或 sudo dnf install telnet-server启用服务 fedora40 或 CentosStream9 不能用 yum或dnf安装xinetd, telnet-server 的服务名为: telnet.socket 启用 telnet.socket.service …...

Unity3D结合AI教育大模型 开发AI教师 AI外教 AI英语教师案例

自2022年底ChatGPT引爆全球之后&#xff0c;大模型技术便迎来了一段崭新的快速发展期&#xff0c;由其在GPT4.0发布后&#xff0c;AI与教育领域结合产品研发、已成为教育AI科技竞争的新高地、未来产业的新赛道、经济发展的新引擎和新产品的诞生地。 据不完全统计&#xff0c;目…...